1. 程式人生 > >HBase的讀寫原理

HBase的讀寫原理

寫操作流程:

  1. 客戶端通過zookeeper的排程,向Hregion Server傳送寫資料的請求,在HRegion中寫資料。
  2. 資料寫入Hregion的Menstore,直到Menstore達到預定的閾值。
  3. Menstore中資料會被衝成成一個StoreFile
  4. 隨著storeFile的數量的增多,當達到一定的閾值會觸發緊湊合並操作,將多個StoreFile合成一個StoreFile,同時把版本更新和資料刪除
  5. storeFile通過不斷的緊湊合並,慢慢越來越多的StoreFile
  6. 單個StoreFile大小超過一定的閾值,觸發拆分操作,把當前Hregion Spilled成兩個新的HRegion,老的Hregion就會下線,新生成的2個HRegion會被Hmaster分配到其他的HregionServer上,使得1個Hregion的壓力分到2個Hregion上。

 

讀操作流程:

  1. 客戶端訪問動物園管理員,檢視ROOT表,獲取META表的資訊
  2. 從META表中查詢,獲取存放目標資料的HRegion資訊,從而找到HRegionServer的資訊
  3. 通過HRegionServer找到相應的資料資訊
  4. HRegionServer的記憶體分為兩部分:
  1. 那種MEMSTORE
  2. bolckcache,那種MEMSTORE主要用於寫操作,blockcache主要用於讀操作,請求先到的memstore讀取資料,再到blockcache中讀取,再沒有就會到StoreFile中讀取,並把讀取的資料放入到blockcache中。

總結:

1.Client訪問Hbase上的資料的過程並不需要master參與(定址訪問zookeeper和region Server)

2.掌握僅僅維護表和區域的元資料資訊,負載比較低。