獲取元資料:
客戶端從zookeeper中獲取mata表的regionserver、region位置資訊
讀取meta表的表資料
找到對應的region:
根據namespace、表名、rowkey從mata表中獲取對應的regionserver、region位置資訊
找到對應的regionserver、region
讀取資料:
根據列簇判斷到哪些store上讀
從對應的store中的memstore找資料,再去blockcache中找,如果沒有,再到storefile上找
最後regionserver把讀取到的資料響應給客戶端
1-4點與讀資料流程是類似的:
獲取元資料:
客戶端從zookeeper中mata表的regionserver、region位置資訊
讀取meta表資料
找到對應的region:
根據namespace、表名,再根據rowkey是否匹配某個region的startkey、endkey,獲取對應的regionserver、region位置資訊
找到對應的regionserver、region
寫入資料:
根據列簇判斷寫入那哪些store
然後將資料寫入到對應store中的memstore
menstore大小到達128m或memstore中的資料存在已超出一小時,會自動將資料從menstore刷寫到storefile中
溢寫合併
補充:in-memory合併
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...