HBase的讀寫流程

2021-10-04 09:52:27 字數 1121 閱讀 3444

hbase讀資料流程如圖3所示

圖3所示 hbase讀資料流程

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

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

3)找到這個region對應的regionserver;

4)查詢對應的region;

5)先從memstore找資料,如果沒有,再到blockcache裡面讀;

6)blockcache還沒有,再到storefile上讀(為了讀取的效率);

7)如果是從

storefile

裡面讀取的資料,不是直接返回給客戶端,而是先寫入

blockcache

,再返回給客戶端。

hbase寫流程如圖2所示

圖2  hbase寫資料流程

1)client向hregionserver傳送寫請求;

2)hregionserver將資料寫到hlog(write ahead log)。為了資料的持久化和恢復;

3)hregionserver將資料寫到記憶體(memstore);

4)反饋client寫成功。

1)當memstore資料達到閾值(預設是128m,老版本是64m),將資料刷到硬碟,將記憶體中的資料刪除,同時刪除hlog中的歷史資料;

2)並將資料儲存到hdfs中;

3)在hlog中做標記點。

1)當資料塊達到4塊,hmaster觸發合併操作,region將資料塊載入到本地,進行合併;

2)當合併的資料超過256m,進行拆分,將拆分後的region分配給不同的hregionserver管理;

3)當hregionserver宕機後,將hregionserver上的hlog拆分,然後分配給不同的hregionserver載入,修改.meta.;

4)注意:hlog會同步到hdfs。

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