1.hbase的寫入流程
regionserver寫入wal檔案
在將操作寫入metastore之前,會將操作先寫入到wal檔案中。wal檔案的是順序儲存操作記錄的,所有每次新操作直接追加到regionserver對應的wal檔案尾部即可。
regionserver寫入metastore
將操作寫入到wal之後,hbase會將操作寫入到metastore中。在metastore是乙個排序的跳躍表,能夠保證rowkey按照hfile的順序進行排序。執行快速查詢。
regionserver最終flush入hfile
regionserver將操作寫入的hfile不是同步發生的,是需要在metastore的記憶體達到一定的量(兩種情況: 1.metastore的記憶體達到設定重新整理值得90%,2:regionserver上所有region的metastore的記憶體佔用量達到總記憶體的設定佔用量,如0.4)之後,才會將metastore裡面所有的操作寫入到hfile中。同時會記錄已經寫入的操作的順序id,便於wal的日誌清理執行緒刪除wal中無用日誌資訊。
2.hbase的定址流程
hbase的流程架構如下
-root-表
表包含.meta.表所在的region列表,該錶只會有乙個region;
zookeeper中記錄了-root-表的location。
.meta.表
表包含所有的使用者空間region列表,以及regionserver的伺服器位址。
Hbase讀寫流程和定址機制
1 client通過 zookeeper 的排程,向 regionserver 發出寫資料請求,在 region 中寫資料。2 資料被寫入 region 的memstore 直到memstore 達到預設閾值。3 memstore中的資料被 flush 成乙個storefile 4 隨著 store...
Hbase讀寫過程
補充 布隆過濾器引數型別有2種 row row col 細節描述 hbase使用memstore和storefile儲存對錶的更新。資料在更新時首先寫入log wal log 和記憶體 memstore 中,memstore中的資料是排序的,當memstore累計到一定閾值時,就會建立乙個新的mem...
HBase 的讀寫過程
一 hbase的讀操作 zookeeper meta regionserver region memstore storefile 1 首先從zookerper找到meta表的region的位置,然後讀取meta表中的資料。而meta中又儲存了使用者表的region資訊 2 根據namespace ...