大数据之HBase部署
一、HBase簡介
1.1 HBase定義
HBase是一種分布式、可擴(kuò)展、支持海量數(shù)據(jù)存儲的NoSQL數(shù)據(jù)庫。
1.2 HBase數(shù)據(jù)模型
邏輯上,HBase 的數(shù)據(jù)模型同關(guān)系型數(shù)據(jù)庫很類似,數(shù)據(jù)存儲在一張表中,有行有列。
但從 HBase 的底層物理存儲結(jié)構(gòu)(K-V)來看,HBase 更像是一個 multi-dimensional map。
1.2.1 HBase邏輯結(jié)構(gòu)
1.2.2 HBase 物理存儲結(jié)構(gòu)
1.2.3 數(shù)據(jù)模型
- Name Space
命名空間,類似于關(guān)系型數(shù)據(jù)庫的 DatabBase 概念,每個命名空間下有多個表。HBase 有兩個自帶的命名空間,分別是 hbase 和 default,hbase 中存放的是 HBase 內(nèi)置的表, default 表是用戶默認(rèn)使用的命名空間。
- Region
類似于關(guān)系型數(shù)據(jù)庫的表概念。不同的是,HBase 定義表時只需要聲明列族即可,不需 要聲明具體的列。這意味著,往 HBase 寫入數(shù)據(jù)時,字段可以動態(tài)、按需指定。因此,和關(guān) 系型數(shù)據(jù)庫相比,HBase 能夠輕松應(yīng)對字段變更的場景。
- Row
HBase 表中的每行數(shù)據(jù)都由一個 RowKey 和多個 Column(列)組成,數(shù)據(jù)是按照 RowKey 的字典順序存儲的,并且查詢數(shù)據(jù)時只能根據(jù) RowKey 進(jìn)行檢索,所以 RowKey 的設(shè)計十分重要。
- Column
HBase 中的每個列都由 Column Family(列族)和 Column Qualifier(列限定符)進(jìn)行限 定,例如 info:name,info:age。建表時,只需指明列族,而列限定符無需預(yù)先定義。
- Time Stamp
用于標(biāo)識數(shù)據(jù)的不同版本(version),每條數(shù)據(jù)寫入時,如果不指定時間戳,系統(tǒng)會 自動為其加上該字段,其值為寫入 HBase 的時間。
Cell
由{rowkey, column Family:column Qualifier, time Stamp} 唯一確定的單元。cell 中的數(shù) 據(jù)是沒有類型的,全部是字節(jié)碼形式存儲。
1.3 HBase 基本架構(gòu)
架構(gòu)角色:
- 1. Region Server
Region Server 為 Region 的管理者,其實現(xiàn)類為 HRegionServer,主要作用如下: 對于數(shù)據(jù)的操作:get, put, delete;
對于 Region 的操作:splitRegion、compactRegion。
- 2. Master
Master 是所有 Region Server 的管理者,其實現(xiàn)類為 HMaster,主要作用如下: 對于表的操作:create, delete, alter
對于 RegionServer 的操作:分配 regions 到每個 RegionServer,監(jiān)控每個 RegionServer
的狀態(tài),負(fù)載均衡和故障轉(zhuǎn)移。
- 3. Zookeeper
HBase 通過 Zookeeper 來做 Master 的高可用、RegionServer 的監(jiān)控、元數(shù)據(jù)的入口以及 集群配置的維護(hù)等工作。
- 4. HDFS
HDFS 為 HBase 提供最終的底層數(shù)據(jù)存儲服務(wù),同時為 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對應(yīng)的配置文件
tips:在配置了HADDOP_HOME的時候,可以不用軟連接!
單節(jié)點啟動,在哪個節(jié)點執(zhí)行命令,哪個節(jié)點就是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此命令若一直處于等待狀態(tài)停止不了的話,就先停止master,再執(zhí)行停止hbase命令即可:
(base) [xiaobai@hadoop102 hbase]$ hbase-daemon.sh stop master (base) [xiaobai@hadoop102 hbase]$ stop-hbase.sh注??:
如果集群之間的節(jié)點時間不同步,會導(dǎo)致 regionserver 無法啟動,拋出 ClockOutOfSyncException 異常。
更改時間同步
屬性:hbase.master.maxclockskew 設(shè)置更大的值:
2.1.5 查看hbase頁面
啟動成功后,可以通過“host:port”的方式來訪問 HBase 管理頁面,例如: http://hadoop102:16010
總結(jié)
以上是生活随笔為你收集整理的大数据之HBase部署的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对list中的元素按照元素的属性进行排序
- 下一篇: Redis-列表(List)基础