HBase資料的讀寫流程總結

2021-07-25 08:29:55 字數 1831 閱讀 7352

zookeeper

保證任何時候,集群中只有乙個hmaster;

實時監控hregion server的上線和下線資訊,並實時通知給hmaster;

儲存hbase的schema和table元資料;

hmaster需要知道哪些hregionserver是活的,可用的。及hregionserver的位置資訊,以便管理hregionserver。這些資訊都有zookeeper提供!

hmaster

理論上hmaster可以啟動多個,但是zookeeper有master election機制保證且允許總有且只有乙個master在執行,來負責table和region的管理工作。

管理hregionserver的負載均衡,調整region分布;

region split後,負責新region的分布;

在hregionserver停機後,負責失效hregionserver上region遷移工作。

region server

監控維護region,處理對這些region的響應,請求;

負責切分在執行過程中變得過大的region。

注意

1,client訪問hbase上資料時並不需要hmaster參與,資料的讀寫也只是訪問regioneserver,

hmaster僅僅維護這table和region的元資料資訊,負載很低。

2,hbase是通過dfs client把資料寫到hdfs上的

3,每乙個hregionserver有多個hregion,每乙個hregion有多個store,每乙個store對應乙個列簇。

4,hfile是hbase中真正實際資料的儲存格式,hfile是二進位制格式檔案,storefile就是對hfile進行了封裝(其實就是乙個東西),

然後進行資料的儲存。

5,hstore由memstore(只有乙個)和storefile(多個)組成。

6,hlog記錄資料的變更資訊,用來做資料恢復。

hbase寫資料流程

1,client先訪問zookeeper,從meta表獲取相應region資訊,然後找到meta表的資料

2,根據namespace、表名和rowkey根據meta表的資料找到寫入資料對應的region資訊

3,找到對應的regionserver

4,把資料分別寫到hlog和memstore上乙份

4,memstore達到乙個閾值後則把資料刷成乙個storefile檔案。(若memstore中的資料有丟失,則可以總hlog上恢復)

5,當多個storefile檔案達到一定的大小後,會觸發compact合併操作,合併為乙個storefile,(這裡同時進行版本的合併和資料刪除。)

6,當storefile大小超過一定閾值後,會把當前的region分割為兩個(split),並由hmaster分配到相應的hregionserver,實現負載均衡

hbase讀資料流程

1,client先訪問zookeeper,從meta表讀取region的位置,然後讀取meta表中的資料。meta中又儲存了使用者表的region資訊。

2,根據namespace、表名和rowkey在meta表中找到對應的region資訊

3,找到這個region對應的regionserver

4,查詢對應的region

5,先從memstore找資料,如果沒有,再到storefile上讀(為了讀取的效率)。

HBase資料的讀寫流程總結

三大件概念明確 zookeeper 保證任何時候,集群中只有乙個hmaster 實時監控hregion server的上線和下線資訊,並實時通知給hmaster 儲存hbase的schema和table元資料 hmaster需要知道哪些hregionserver是活的,可用的。及hregionser...

HBase資料的讀寫流程

1 hbase資料寫入流程1 客戶端訪問zookeeeper,從meta表中得到寫入資料對應的region資訊和相應的region伺服器。2 客戶端訪問相應的region伺服器,把資料分別寫入hlog和memstore。memstore資料容量有限,當達到乙個閾值後,則把資料寫入磁碟檔案storef...

HBase資料的讀寫流程

hbase 的核心模組是 region 伺服器。region 伺服器由多個 region 塊構成,region 塊中儲存一系列連續的資料集。region 伺服器主要構成部分是 hlog 和 region 塊。hlog 記錄該 region 的操作日誌。region 物件由多個 store 組成,每個...