大数据之HBase部署
一、HBase簡介
1.1 HBase定義
HBase是一種分布式、可擴展、支持海量數據存儲的NoSQL數據庫。
1.2 HBase數據模型
邏輯上,HBase 的數據模型同關系型數據庫很類似,數據存儲在一張表中,有行有列。
但從 HBase 的底層物理存儲結構(K-V)來看,HBase 更像是一個 multi-dimensional map。
1.2.1 HBase邏輯結構
1.2.2 HBase 物理存儲結構
1.2.3 數據模型
- Name Space
命名空間,類似于關系型數據庫的 DatabBase 概念,每個命名空間下有多個表。HBase 有兩個自帶的命名空間,分別是 hbase 和 default,hbase 中存放的是 HBase 內置的表, default 表是用戶默認使用的命名空間。
- Region
類似于關系型數據庫的表概念。不同的是,HBase 定義表時只需要聲明列族即可,不需 要聲明具體的列。這意味著,往 HBase 寫入數據時,字段可以動態、按需指定。因此,和關 系型數據庫相比,HBase 能夠輕松應對字段變更的場景。
- Row
HBase 表中的每行數據都由一個 RowKey 和多個 Column(列)組成,數據是按照 RowKey 的字典順序存儲的,并且查詢數據時只能根據 RowKey 進行檢索,所以 RowKey 的設計十分重要。
- Column
HBase 中的每個列都由 Column Family(列族)和 Column Qualifier(列限定符)進行限 定,例如 info:name,info:age。建表時,只需指明列族,而列限定符無需預先定義。
- Time Stamp
用于標識數據的不同版本(version),每條數據寫入時,如果不指定時間戳,系統會 自動為其加上該字段,其值為寫入 HBase 的時間。
Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一確定的單元。cell 中的數 據是沒有類型的,全部是字節碼形式存儲。
1.3 HBase 基本架構
架構角色:
- 1. Region Server
Region Server 為 Region 的管理者,其實現類為 HRegionServer,主要作用如下: 對于數據的操作:get, put, delete;
對于 Region 的操作:splitRegion、compactRegion。
- 2. Master
Master 是所有 Region Server 的管理者,其實現類為 HMaster,主要作用如下: 對于表的操作:create, delete, alter
對于 RegionServer 的操作:分配 regions 到每個 RegionServer,監控每個 RegionServer
的狀態,負載均衡和故障轉移。
- 3. Zookeeper
HBase 通過 Zookeeper 來做 Master 的高可用、RegionServer 的監控、元數據的入口以及 集群配置的維護等工作。
- 4. HDFS
HDFS 為 HBase 提供最終的底層數據存儲服務,同時為 HBase 提供高可用的支持。
二、HBase集群安裝
2.1 HBase 安裝部署
2.1.1 Zookeeper 正常部署
zookeeper集群需正常部署==>
啟動zookeeper:
2.1.2 Hadoop 正常部署
hadoop–集群配置/群起集群==>
hadoop啟動:
[xiaobai@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh [xiaobai@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh2.1.3 HBase安裝目錄
將HBase解壓至/opt/module/目錄:
(base) [xiaobai@hadoop102 hbase]$ tar -zxvf hbase-2.0.5-bin.tar.gz -C /opt/module/2.1.4 HBase配置文件
修改Hbase對應的配置文件
tips:在配置了HADDOP_HOME的時候,可以不用軟連接!
單節點啟動,在哪個節點執行命令,哪個節點就是master!
(base) [xiaobai@hadoop102 hbase]$ bin/start-hbase.sh (base) [xiaobai@hadoop102 hbase]$ jps 17056 QuorumPeerMain 20928 RunJar 67456 HRegionServer 16883 JobHistoryServer 16277 DataNode 16662 NodeManager 16126 NameNode 67103 HMaster 67582 Jps [xiaobai@hadoop103 ~]$ jps 111509 NodeManager 116933 HRegionServer 10325 Kafka 111924 QuorumPeerMain 111371 ResourceManager 111151 DataNode 117038 Jps [xiaobai@hadoop104 module]$ jps 86050 Jps 82260 NodeManager 82153 SecondaryNameNode 82440 QuorumPeerMain 85836 HRegionServer停止:
(base) [xiaobai@hadoop102 hbase]$ bin/stop-hbase.sh此命令若一直處于等待狀態停止不了的話,就先停止master,再執行停止hbase命令即可:
(base) [xiaobai@hadoop102 hbase]$ hbase-daemon.sh stop master (base) [xiaobai@hadoop102 hbase]$ stop-hbase.sh注??:
如果集群之間的節點時間不同步,會導致 regionserver 無法啟動,拋出 ClockOutOfSyncException 異常。
更改時間同步
屬性:hbase.master.maxclockskew 設置更大的值:
2.1.5 查看hbase頁面
啟動成功后,可以通過“host:port”的方式來訪問 HBase 管理頁面,例如: http://hadoop102:16010
總結
以上是生活随笔為你收集整理的大数据之HBase部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对list中的元素按照元素的属性进行排序
- 下一篇: we are the world 群星,