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