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

三、讀寫存操作

1.Hbase的寫流程

在這裏插入圖片描述

2.Hbase的讀流程

在這裏插入圖片描述

發佈了30 篇原創文章 · 獲贊 42 · 訪問量 7814
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章