(四)hbase讀寫過程

2021-09-03 02:37:13 字數 928 閱讀 6912

寫入資料的過程

通過行鍵 ==》 哪個region ==》regionserver ==》region 

通過列族 ==》 region中某個store

先向hlog裡插入操作記錄 ==》 把資料直接放入 memstore ==》 返回寫入成功

後台去把memstore的資料flush到storefile

寫入資料的思想

找到具體的storefile(過程與寫入資料一樣)

在索引塊中查詢,若沒有找到,則說明整個storefile裡沒有對應資料

若在多個storefile中都找到了對應資料的datablock,則直接把所有datablock返回給查詢程式,由查詢程式去組裝這些資料後返回。

在hbase中有乙個hbase:meta表,其中存放了表和region和regionsever之間的對應關係。這個表只有乙個region,這個region的位置資訊被存放在了zookeeper的meta-region-server節點下。

每次運算元據前,先去zookeeper的meta-region-server節點下,找到meta表的region對應regionserver的位址,然後通過meta表得到自己需要操作的資料對應的region及regionserver。

剛開始資料少只有乙個region,隨著資料的增加,當達到某個閾值(可配置),則會**為多個region。資料越來越多,會繼續**。

定義表的時候,若定義version=3,則在hdfs上真正儲存的也只有三個版本的資訊。但是如果scan表的時候,指定version=5,最近五個版本的資訊都會展示出來。是因為在記憶體裡有快取。

若是停止hbase然後重啟hbase,再去scan,只會有三個版本的資訊展示出來。因為記憶體會釋放,資料真正的從hdfs上載入出來。

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

Hbase結構和讀寫過程

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