文章目錄
一、系統結構與環境角色
1.架構圖
2.HMaster
- 監控RegionServer
- 處理RegionServer故障轉移、處理源數據變更
- 處理region的分配與移除
- 空閒時進行數據的負載均衡
- 通過ZK發佈自己的位置給客戶端連接
3.RegionServer
- 負責與hdfs交互,存儲數據到hdfs中
- 處理hmaster分配的region
- 刷新緩存到hdfs
- 維護hlog
- 執行壓縮
- 處理region分片
- 處理來自客戶端的讀寫請求
4.Client
- Client包含了訪問Hbase的接口
- 維護對應的cache來加速Hbase的訪問,比如MATE表的元數據信息
5.Zookeeper
- Zookeeper主要負責master的高可用
- RegionServer的監控
- 元數據的入口以及集羣配置的維護工作。
6.HDFS
HDFS爲Hbase提供最終的底層數據存儲服務,同時爲HBase提供高可用(Hlog存儲在HDFS)的支持,具體功能概括如下:
- 提供元數據和表數據的底層分佈式存儲服務
- 數據多副本,保證的高可靠和高可用性
二、組件
1.Write-Ahead-logs(hlog)
它是Hbase的修改記錄,當對Hbase進行讀寫操作時,數據不是直接資額入到磁盤的,它會在內容中保存一段時間(時間長短以及數據量的閾值可以設置)。但是我們都知道數據存放在內存中並不安全,爲了避免這個問題;數據會先寫入到Write-Ahead-logfile的文件中(和hdfs的edit文件相似),然後在寫入內存。當系統故障時可以通過日誌文件重建數據。
2.Region
Hbase的表分片,Hbase表會根據RowKey的不同被切分成不同的region存儲在RegionServer中;所以在一個RegionServer中可以有多個不同的region。
3.Store
Hfile存儲在Store中,一個Store對贏Hbase表中的一個列族。
4.HFile
是在磁盤上保存原始數據的實際物理文件。StoreFile是以Hfile的形式存儲在Hdfs中。
5.MemStore
內存存儲,位於內存中,用來保存當前的數據操作,所以當數據保存在WAL中之後,RegsionServer會在內存中存儲鍵值對。