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