hadoop 之 hbase 原理 (hmaster, hregionserver, zookeeper, 讀寫流程及元件職責)
阿新 • • 發佈:2018-12-31
目錄
- 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
- 並將資料儲存到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。