hbase讀寫流程

2022-04-12 00:43:20 字數 1527 閱讀 6051

1)hregionserver儲存著

meta

表以及表資料,要訪問表資料,首先

client

先去訪問

zookeeper

,從zookeeper

裡面獲取

meta

表所在的位置資訊,即找到這個

meta

表在哪個

hregionserver

上儲存著

2)接著client通過剛才獲取到的

hregionserver的ip

來訪問meta

表所在的

hregionserver

,從而讀取到

meta

,進而獲取到

meta

表中存放的元資料。

3)client通過元資料中儲存的資訊,訪問對應的

hregionserver

,然後掃瞄所在

hregionserver

的memstore

和storefile

來查詢資料。

4)最後hregionserver把查詢到的資料響應給

client

1)client也是先訪問

zookeeper

,找到meta

表,並獲取

meta表資訊

2)確定當前將要寫入的資料所對應的regionserver伺服器

和region。

3)client向該

regionserver

伺服器發起寫入資料請求,然後

regionserver

收到請求並響應。

4)client先把資料寫入到

hlog

,以防止資料丟失。

5)然後將資料寫入到memstore。

6)如果hlog和

memstore

均寫入成功,則這條資料寫入成功。在此過程中,如果

memstore

達到閾值,會把

memstore

中的資料

flush

到storefile

中。7)當storefile越來越多,會觸發

compact

合併操作,把過多的

storefile

合併成乙個大的

storefile

。當storefile

越來越大,

region

也會越來越大,達到閾值後,會觸發

split

操作,將

region

一分為二。

因為記憶體空間是有限的,所以說溢寫過程必定伴隨著大量的小檔案產生。

本文參考自:盡際

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...