Hbase的讀寫流程

2021-08-19 17:28:58 字數 810 閱讀 2561

步驟1:client通過zookeeper的排程,向hregionserver發出寫資料請求,在hregion中寫資料。

步驟2:資料被寫入hregion的memstore,直到memstore達到預設閾值。

步驟3:memstore中的資料被flush成乙個storefile。

步驟4:隨著storefile檔案的不斷增多,當其數量增長到一定閾值後,觸發compact合併操作,將多個storefile合併成乙個storefile,同時進行版本合併和資料刪除。

步驟5:storefiles通過不斷的compact合併操作,逐步形成越來越大的storefile。

步驟6:單個storefile大小超過一定閾值後,觸發split操作,把當前hregion split成2個新的hregion。父hregion會下線,新split出的2個子hregion會被hmaster分配到相應的hregionserver 上,使得原先1個hregion的壓力得以分流到2個hregion上。

2 讀操作流程

步驟1:client訪問zookeeper,查詢-root-表,獲取.meta.表資訊。

步驟2:從.meta.表查詢,獲取存放目標資料的hregion資訊,從而找到對應的hregionserver。

步驟3:通過hregionserver獲取需要查詢的資料。

步驟4:hregionserver的記憶體分為memstore和blockcache兩部分,memstore主要用於寫資料,blockcache主要用於讀資料。讀請求先到memstore中查資料,查不到就到blockcache中查,再查不到就會到storefile上讀,並把讀的結果放入blockcache

HBase 讀寫流程

1.讀流程 client先訪問zookeeper,從meta表讀取region的位置,然後讀取meta表中的資料。meta中又儲存了使用者表的region資訊 根據namespace 表名和rowkey在meta表中找到對應的region資訊 找到這個region對應的regionserver 查詢...

HBase讀寫流程

1 client先訪問zookeeper,從meta表讀取region的位置,然後讀取meta表中的資料。meta中又儲存了使用者表的region資訊 2 根據namespace 表名和rowkey在meta表中找到對應的region資訊 3 找到這個region對應的regionserver 4 ...

HBase讀寫流程

寫流程參考 1.首先,客戶端需要獲知其想要讀取的資訊的region的位置,這個時候,client訪問hbase上資料時並不需要hmaster參與 hmaster僅僅維護著table和region的元資料資訊,負載很低 只需要訪問zookeeper,從meta表獲取相應region資訊 位址和埠等 c...