1. 程式人生 > >hadoop 之 hbase 原理 (hmaster, hregionserver, zookeeper, 讀寫流程及元件職責)

hadoop 之 hbase 原理 (hmaster, hregionserver, zookeeper, 讀寫流程及元件職責)

目錄

  • 1、體系圖
  • 2、寫流程
  • 3、flush過程
  • 4、合併過程
  • 5、讀過程
  • 6、hmaster職責
  • 7、hregionserver職責
  • 8、client職責

 

1、體系圖

2、寫流程

  • client向hregionserver傳送寫請求。
  • hregionserver將資料寫到hlog(write ahead log),為了資料的持久化和恢復。
  • hregionserver將資料寫到記憶體(memstore)。
  • 反饋client寫成功。

3、flush過程

  • 當memstore資料達到閾值(1版本預設是64M,2版本預設是128M
    ),將資料刷到硬碟,將記憶體中的資料刪除,同時刪除Hlog中的歷史資料。
  • 並將資料儲存到hdfs中。
  • 在hlog中做標記點。

4、合併過程

  • 當資料塊達到 4塊 (預設值),hmaster將資料塊載入到本地,進行合併。
  • 當合並的資料超過256M(1版本為256M, 2版本為512M),進行拆分,將拆分後的region分配給不同的hregionserver管理
  • 當hregionser宕機後,將hregionserver上的hlog拆分,然後分配給不同的hregionserver載入,修改.META. 。
  • 注意:hlog會同步到hdfs。

5、讀過程

  • 通過zookeeper和-ROOT- .META.表定位hregionserver。
  • 資料從記憶體和硬碟合併後返回給client。
  • 資料塊會快取。

6、hmaster職責

  • 管理使用者對Table的增、刪、改、查操作;
  • 記錄region在哪臺Hregion server上;
  • 在Region Split後,負責新Region的分配;
  • 新機器加入時,管理HRegion Server的負載均衡,調整Region分佈;
  • 在HRegion Server宕機後,負責失效HRegion Server 上的Regions遷移。

7、hregionserver職責

  • HRegion Server主要負責響應使用者I/O請求,向HDFS檔案系統中讀寫資料,是HBASE中最核心的模組
  • HRegion Server管理了很多table的分割槽,也就是region。

8、client職責

  • HBASE Client使用HBASE的RPC機制與HMaster和HRegionServer進行通訊;
  • 管理類操作:Client與HMaster進行RPC;
  • 資料讀寫類操作:Client與HRegionServer進行RPC。