Hbase讀寫過程

2021-08-28 00:19:05 字數 728 閱讀 2403

補充:布隆過濾器引數型別有2種: 

row、row+col

細節描述: 

hbase使用memstore和storefile儲存對錶的更新。 

資料在更新時首先寫入log(wal log)和記憶體(memstore)中,memstore中的資料是排序的,當memstore累計到一定閾值時,就會建立乙個新的memstore,並且將老的memstore新增到flush佇列,由單獨的執行緒flush到磁碟上,成為乙個storefile。於此同時,系統會在zookeeper中記錄乙個redo point,表示這個時刻之前的變更已經持久化了。

當系統出現意外時,可能導致記憶體(memstore)中的資料丟失,此時使用log(wal log)來恢復checkpoint之後的資料。

storefile是唯讀的,一旦建立後就不可以再修改。因此hbase的更新其實是不斷追加的操作。當乙個store中的storefile達到一定的閾值後,就會進行一次合併(minor_compact, major_compact),將對同乙個key的修改合併到一起,形成乙個大的storefile,當storefile的大小達到一定閾值後,又會對 storefile進行split,等分為兩個storefile。

由於對錶的更新是不斷追加的,compact時,需要訪問store中全部的 storefile和memstore,將他們按row key進行合併,由於storefile和memstore都是經過排序的,並且storefile帶有記憶體中索引,合併的過程還是比較快。

(四)hbase讀寫過程

寫入資料的過程 通過行鍵 哪個region regionserver region 通過列族 region中某個store 先向hlog裡插入操作記錄 把資料直接放入 memstore 返回寫入成功 後台去把memstore的資料flush到storefile 寫入資料的思想 找到具體的storef...

HBase 的讀寫過程

一 hbase的讀操作 zookeeper meta regionserver region memstore storefile 1 首先從zookerper找到meta表的region的位置,然後讀取meta表中的資料。而meta中又儲存了使用者表的region資訊 2 根據namespace ...

Hbase結構和讀寫過程

1 hbase寫如過程圖 於網路 2 hbase的結構 master hbase master用於協調多個region server,偵測各個regionserver之間的狀態,並平衡regionserver之間的負載,並且分配region給regionserver。region server 乙個...