文章目錄
-
- 一、系統結構與環境角色
-
- 1.架構圖
- 2.HMaster
- 3.RegionServer
- 4.Client
- 5.Zookeeper
- 6.HDFS
- 二、元件
-
- 1.Write-Ahead-logs(hlog)
- 2.Region
- 3.Store
- 4.HFile
- 5.MemStore
- 三、讀寫存操作
-
- 1.Hbase的寫流程
- 2.Hbase的讀流程
一、系統結構與環境角色
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會在記憶體中存儲鍵值對。