[hbase] hbase的架構及其各角色功能

架構圖在這裏插入圖片描述
各組件及其功能:
1)Client
Client包含了訪問Hbase的接口,另外Client還維護了對應的cache來加速Hbase的訪問,比如cache的.META.元數據的信息。

2)Zookeeper
HBase通過Zookeeper來做master的高可用、RegionServer的監控、元數據的入口以及集羣配置的維護等工作。具體工作如下:
通過Zoopkeeper來保證集羣中只有1個master在運行,如果master異常,會通過競爭機制產生新的master提供服務
通過Zoopkeeper來監控RegionServer的狀態,當RegionSevrer有異常的時候,通過回調的形式通知Master RegionServer上下線的信息
通過Zoopkeeper存儲元數據的統一入口地址

3)Hmaster(類似於NameNode)
master節點是整個Hbase的管理者,其主要職責如下:
1.監控RegionServer
2.處理RegionServer故障轉移
3.處理元數據的變更,處理表級別的增刪改查(ddl)
4.處理region的分配或轉移
5.在空閒時間進行數據的負載均衡
6.通過Zookeeper發佈自己的位置給客戶端

4)HregionServer(類似於DataNode)
HregionServer直接對接用戶的讀寫請求,是真正的“幹活”的節點。它的功能概括如下:
1.負責存儲HBase的實際數據,負責表內數據的增刪改查(dml)
2.處理分配給它的Region
3.刷新緩存到HDFS
4.維護Hlog
5.執行壓縮
6.負責處理Region分片

5)HLOG(WAL)
預寫日誌,記錄操作的日誌.由於數據要經 MemStore 排序後才能刷寫到 HFile,但把數據保存在內存中會有很高的概率導致數據丟失,爲了解決這個問題,數據會先寫在一個叫做Write-Ahead logfile 的文件中,然後再寫入MemStore 中。所以在系統出現故障的時候,數據可以通過這個日誌文件重建。

6)HRegion
Hbase表的分片,HBase表會根據RowKey值被切分成不同的region存儲在RegionServer中,在一個RegionServer中可以有多個不同的region。

7)Store
HFile存儲在Store中,一個Store對應HBase表中的一個列族

8)Mem Store
寫緩存,由於HFile 中的數據要求是有序的,所以數據是先存儲在MemStore 中,排好序後,等到達刷寫時機纔會刷寫到HFile,每次刷寫都會形成一個新的HFile。

9)StoreFile
緩存中的數據足夠多以後會flush至硬盤形成StoreFile.是保存實際數據的物理文件,StoreFile 以HFile 的形式存儲在HDFS 上。每個Store 會有一個或多個StoreFile(HFile),數據在每個StoreFile 中都是有序的。

10)HFile
是在磁盤上保存原始數據的實際的物理文件,是實際的存儲文件。StoreFile是以Hfile的形式存儲在HDFS的,其內在是鍵值對形式。

11)HDFS
HDFS爲Hbase提供最終的底層數據存儲服務,同時爲HBase提供高可用(Hlog存儲在HDFS)的支持,具體功能概括如下:
1 提供元數據和表數據的底層分佈式存儲服務
2 數據多副本,保證的高可靠和高可用性

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章