天天看點

HBase的系統結構與讀寫流程

文章目錄

    • 一、系統結構與環境角色
      • 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.架構圖

HBase的系統結構與讀寫流程

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會在記憶體中存儲鍵值對。

三、讀寫存操作

1.Hbase的寫流程

HBase的系統結構與讀寫流程

2.Hbase的讀流程

HBase的系統結構與讀寫流程

繼續閱讀