Hbase讀寫流程和定址機制

2022-08-23 04:00:12 字數 1682 閱讀 8637

(1) client通過

zookeeper

的排程,向

regionserver

發出寫資料請求,在

region

中寫資料。

(2) 資料被寫入

region

的memstore

,直到memstore

達到預設閾值。

(3) memstore中的資料被

flush

成乙個storefile

。(4) 隨著

storefile

檔案的不斷增多,當其數量增長到一定閾值後,觸發

compact

合併操作,將多個

storefile

合併成乙個

storefile

,同時進行版本合併和資料刪除。

(5) storefiles通過不斷的

compact

合併操作,逐步形成越來越大的

storefile

。(6) 單個

storefile

大小超過一定閾值後,觸發

split

操作,把當前

region split成2

個新的region

。父region

會下線,新

split出的2

個子region

會被hmaster

分配到相應的

regionserver

上,使得原先1個

region

的壓力得以分流到2個

region

上。可以看出hbase只有增添資料,所有的更新和刪除操作都是在後續的

compact

歷程中舉行的,使得使用者的寫操作只要進入記憶體就可以立刻返回,實現了

hbase i/o

的高機能。

(1) client訪問

zookeeper

,查詢-root-

表,獲取

.meta.

表資訊。

(2) 從

.meta.

表查詢,獲取存放目標資料的

region

資訊,從而找到對應的

regionserver

。(3) 通過

regionserver

獲取需要查詢的資料。

(4) regionserver的記憶體分為

memstore

和blockcache

兩部分,

memstore

主要用於寫資料,

blockcache

主要用於讀資料。讀請求先到

memstore

中查資料,查不到就到

blockcache

中查,再查不到就會到

storefile

上讀,並把讀的結果放入

blockcache

定址過程:client-->zookeeper-->-root-表

-->.meta.

表-->regionserver-->region-->client

hbase定址機制

Hbase定址機制

root 表結構 meta.行記錄結構 現在假設我們要從table2裡面查詢一條rowkey是rk10000的資料。那麼我們應該遵循以下步驟 1.從.meta.表裡面查詢哪個region包含這條資料。2.獲取管理這個region的regionserver位址。3.連線這個regionserver,查...

Hbase的讀寫定址過程

1.hbase的寫入流程 regionserver寫入wal檔案 在將操作寫入metastore之前,會將操作先寫入到wal檔案中。wal檔案的是順序儲存操作記錄的,所有每次新操作直接追加到regionserver對應的wal檔案尾部即可。regionserver寫入metastore 將操作寫入到...

HBase 讀寫流程

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