在HBase中,表被分割成區(qū)域,并由區(qū)域服務(wù)器提供服務(wù)。區(qū)域被列族垂直分為“Stores”。Stores被保存在HDFS文件。下面顯示的是HBase的結(jié)構(gòu)。
注意:術(shù)語(yǔ)“store”是用于區(qū)域來(lái)解釋存儲(chǔ)結(jié)構(gòu)。
HBase有三個(gè)主要組成部分:客戶端庫(kù),主服務(wù)器和區(qū)域服務(wù)器。區(qū)域服務(wù)器可以按要求添加或刪除。
主服務(wù)器
主服務(wù)器是 -
-
分配區(qū)域給區(qū)域服務(wù)器并在Apache ZooKeeper的幫助下完成這個(gè)任務(wù)。
-
處理跨區(qū)域的服務(wù)器區(qū)域的負(fù)載均衡。它卸載繁忙的服務(wù)器和轉(zhuǎn)移區(qū)域較少占用的服務(wù)器。
-
通過(guò)判定負(fù)載均衡以維護(hù)集群的狀態(tài)。
-
負(fù)責(zé)模式變化和其他元數(shù)據(jù)操作,如創(chuàng)建表和列。
區(qū)域
區(qū)域只不過(guò)是表被拆分,并分布在區(qū)域服務(wù)器。
區(qū)域服務(wù)器
區(qū)域服務(wù)器擁有區(qū)域如下 -
-
與客戶端進(jìn)行通信并處理數(shù)據(jù)相關(guān)的操作。
-
句柄讀寫(xiě)的所有地區(qū)的請(qǐng)求。
-
由以下的區(qū)域大小的閾值決定的區(qū)域的大小。
需要深入探討區(qū)域服務(wù)器:包含區(qū)域和存儲(chǔ),如下圖所示:
存儲(chǔ)包含內(nèi)存存儲(chǔ)和HFiles。memstore就像一個(gè)高速緩存。在這里開(kāi)始進(jìn)入了HBase存儲(chǔ)。數(shù)據(jù)被傳送并保存在Hfiles作為塊并且memstore刷新。
Zookeeper
-
Zookeeper管理是一個(gè)開(kāi)源項(xiàng)目,提供服務(wù),如維護(hù)配置信息,命名,提供分布式同步等
-
Zookeeper代表不同區(qū)域的服務(wù)器短暫節(jié)點(diǎn)。主服務(wù)器使用這些節(jié)點(diǎn)來(lái)發(fā)現(xiàn)可用的服務(wù)器。
-
除了可用性,該節(jié)點(diǎn)也用于追蹤服務(wù)器故障或網(wǎng)絡(luò)分區(qū)。
-
客戶端通過(guò)與zookeeper區(qū)域服務(wù)器進(jìn)行通信。
-
在模擬和獨(dú)立模式,HBase由zookeeper來(lái)管理。