MRS HBase結(jié)構(gòu)介紹
HBase結(jié)構(gòu)介紹
HBase集群由主備Master進(jìn)程和多個RegionServer進(jìn)程組成。
Master
又叫HMaster,在HA模式下,包含主用Master和備用Master。其中:
主用Master:負(fù)責(zé)HBase中RegionServer的管理,包括表的增刪改查;RegionServer的負(fù)載均衡,Region分布調(diào)整;Region分裂以及分裂后的Region分配等。
備用Master:當(dāng)主用Master故障時,備用Master將取代主用Master對外提供服務(wù)。故障恢復(fù)后,原主用Master降為備用。
Client
Client使用HBase的RPC機制與Master、RegionServer進(jìn)行通信。Client與Master進(jìn)行管理類通信,與RegionServer進(jìn)行數(shù)據(jù)操作類通信。
RegionServer
RegionServer負(fù)責(zé)提供表數(shù)據(jù)讀寫等服務(wù),是HBase的數(shù)據(jù)處理和計算單元。RegionServer一般與HDFS集群的DataNode部署在一起,實現(xiàn)數(shù)據(jù)的存儲功能。
ZooKeeper集群
ZooKeeper為HBase集群中各進(jìn)程提供分布式協(xié)作服務(wù)。各RegionServer將自己的信息注冊到ZooKeeper中,主用Master據(jù)此感知各個RegionServer的健康狀態(tài)。
HDFS集群
HDFS為HBase提供高可靠的文件存儲服務(wù),HBase的數(shù)據(jù)全部存儲在HDFS中。

MRS HBase原理介紹
HBase數(shù)據(jù)模型
HBase以表的形式存儲數(shù)據(jù)。表中的數(shù)據(jù)劃分為多個Region,并由Master分配給對應(yīng)的RegionServer進(jìn)行管理。
每個Region包含了表中一段RowKey區(qū)間范圍內(nèi)的數(shù)據(jù),HBase的一張數(shù)據(jù)表開始只包含一個Region,隨著表中數(shù)據(jù)的增多,當(dāng)一個Region的大小達(dá)到容量上限后會分裂成兩個Region。
RegionServer數(shù)據(jù)存儲
RegionServer主要負(fù)責(zé)管理由HMaster分配的Region。
元數(shù)據(jù)表
元數(shù)據(jù)表是HBase中一種特殊的表,用來幫助Client定位到具體的Region。元數(shù)據(jù)表包括“hbase:meta”表,用來記錄用戶表的Region信息,例如,Region位置、起始RowKey及結(jié)束RowKey等信息。
數(shù)據(jù)操作流程
1、對HBase進(jìn)行增、刪、改、查數(shù)據(jù)操作時,HBase Client首先連接ZooKeeper獲得“hbase:meta”表所在的RegionServer的信息。
2、HBase Client連接到包含對應(yīng)的“hbase:meta”表的Region所在的RegionServer,并獲得相應(yīng)的用戶表的Region所在的RegionServer位置信息。
3、HBase Client連接到對應(yīng)的用戶表Region所在的RegionServer,并將數(shù)據(jù)操作命令發(fā)送給該RegionServer,RegionServer接收并執(zhí)行該命令從而完成本次數(shù)據(jù)操作。
為了提升數(shù)據(jù)操作的效率,HBase Client會在內(nèi)存中緩存“hbase:meta”和用戶表Region的信息,當(dāng)應(yīng)用程序發(fā)起下一次數(shù)據(jù)操作時,HBase Client會首先從內(nèi)存中獲取這些信息;當(dāng)未在內(nèi)存緩存中找到對應(yīng)數(shù)據(jù)信息時,HBase Client會重復(fù)上述操作。
MRS HBase與其他組件的關(guān)系
HBase和HDFS的關(guān)系
HDFS是Apache的Hadoop項目的子項目,HBase利用Hadoop HDFS作為其文件存儲系統(tǒng)。HBase位于結(jié)構(gòu)化存儲層,Hadoop HDFS為HBase提供了高可靠性的底層存儲支持。除了HBase產(chǎn)生的一些日志文件,HBase中的所有數(shù)據(jù)文件都可以存儲在Hadoop HDFS文件系統(tǒng)上。
HBase和ZooKeeper的關(guān)系
1、HRegionServer以Ephemeral node的方式注冊到ZooKeeper中。其中ZooKeeper存儲HBase的如下信息:HBase元數(shù)據(jù)、HMaster地址。
2、HMaster通過ZooKeeper隨時感知各個HRegionServer的健康狀況,以便進(jìn)行控制管理。
3、HBase也可以部署多個HMaster,類似HDFS NameNode,當(dāng)HMaster主節(jié)點出現(xiàn)故障時,HMaster備用節(jié)點會通過ZooKeeper獲取主HMaster存儲的整個HBase集群狀態(tài)信息。即通過ZooKeeper實現(xiàn)避免HBase單點故障問題。
MRS HBase開源增強特性
HBase開源增強特性:HIndex
HBase是一個Key-Value類型的分布式存儲數(shù)據(jù)庫。每張表的數(shù)據(jù)按照RowKey的字典順序排序,因此,如果按照某個指定的RowKey去查詢數(shù)據(jù),或者指定某一個RowKey范圍去掃描數(shù)據(jù)時,HBase可以快速定位到需要讀取的數(shù)據(jù)位置,從而可以高效地獲取到所需要的數(shù)據(jù)。
HBase開源增強特性:支持多點分割
當(dāng)用戶在HBase創(chuàng)建Region預(yù)先分割的表時,用戶可能不知道數(shù)據(jù)的分布趨勢,所以Region的分割可能不合適,所以當(dāng)系統(tǒng)運行一段時間后,Region需要重新分割以獲得更好的查詢性能,HBase只會分割空的Region。
為了實現(xiàn)根據(jù)用戶的需要動態(tài)分割Region以獲得更好的性能這一目標(biāo),開發(fā)了多點分割又稱動態(tài)分割,即把空的Region預(yù)先分割成多個Region。通過預(yù)先分割,避免了因為Region空間不足出現(xiàn)Region分割導(dǎo)致性能下降的現(xiàn)象。
HBase開源增強特性:容災(zāi)增強
主備集群之間的容災(zāi)能力可以增強HBase數(shù)據(jù)的高可用性,主集群提供數(shù)據(jù)服務(wù),備用集群提供數(shù)據(jù)備份,當(dāng)主集群出現(xiàn)故障時,備集群可以提供數(shù)據(jù)服務(wù)。相比開源Replication功能,做了如下增強:
1、備集群白名單功能,只接受指定集群ip的數(shù)據(jù)推送。
2、開源版本中replication是基于WAL同步,在備集群回放WAL實現(xiàn)數(shù)據(jù)備份的。對于BulkLoad,由于沒有WAL產(chǎn)生,BulkLoad的數(shù)據(jù)不會replicate到備集群。通過將BulkLoad操作記錄在WAL上,同步至備集群,備集群通過WAL讀取BulkLoad操作記錄,將對應(yīng)的主集群的HFile加載到備集群,完成數(shù)據(jù)的備份。
3、開源版本中HBase對于系統(tǒng)表ACL做了過濾,ACL信息不會同步至備集群,通過新加一個過濾器org.apache.hadoop.hbase.replication.SystemTableWALEntryFilterAllowACL,允許ACL信息同步至備集群,用戶可以通過配置hbase.replication.filter.sytemWALEntryFilter使用該過濾其實現(xiàn)ACL同步。
4、備集群只讀限制,備集群只接受備集群節(jié)點內(nèi)的super user對備集群的HBase進(jìn)行修改操作,即備集群節(jié)點之外的HBase客戶端只能對備集群的HBase進(jìn)行讀操作。
HBase開源增強特性:HBase雙讀
在HBase存儲場景下,因為GC、網(wǎng)絡(luò)抖動、磁盤壞道等原因,很難保證99.9%的查詢穩(wěn)定性。為了滿足用戶大數(shù)據(jù)量隨機讀低毛刺的要求,新增了HBase雙讀特性。
HBase雙讀特性是建立在主備集群容災(zāi)能力之上,兩套集群同時產(chǎn)生毛刺的概率要遠(yuǎn)遠(yuǎn)小于一套集群,即采用雙集群并發(fā)訪問的方式,保證查詢的穩(wěn)定性。當(dāng)用戶發(fā)起查詢請求時,同時查詢兩個集群的HBase服務(wù),在等待一段時間(最大容忍的毛刺時間)后,如果主集群沒有返回結(jié)果,則可以使用響應(yīng)最快的集群數(shù)據(jù)。
MRS集群客戶端使用教程視頻
MapReduce服務(wù) MRS
03:44
MapReduce服務(wù) MRS
03:22
MapReduce服務(wù) MRS
04:20
MapReduce服務(wù) MRS
04:20