HBase的讀寫原理
阿新 • • 發佈:2018-12-14
寫操作流程:
- 客戶端通過zookeeper的排程,向Hregion Server傳送寫資料的請求,在HRegion中寫資料。
- 資料寫入Hregion的Menstore,直到Menstore達到預定的閾值。
- Menstore中資料會被衝成成一個StoreFile
- 隨著storeFile的數量的增多,當達到一定的閾值會觸發緊湊合並操作,將多個StoreFile合成一個StoreFile,同時把版本更新和資料刪除
- storeFile通過不斷的緊湊合並,慢慢越來越多的StoreFile
- 單個StoreFile大小超過一定的閾值,觸發拆分操作,把當前Hregion Spilled成兩個新的HRegion,老的Hregion就會下線,新生成的2個HRegion會被Hmaster分配到其他的HregionServer上,使得1個Hregion的壓力分到2個Hregion上。
讀操作流程:
- 客戶端訪問動物園管理員,檢視ROOT表,獲取META表的資訊
- 從META表中查詢,獲取存放目標資料的HRegion資訊,從而找到HRegionServer的資訊
- 通過HRegionServer找到相應的資料資訊
- HRegionServer的記憶體分為兩部分:
- 那種MEMSTORE
- bolckcache,那種MEMSTORE主要用於寫操作,blockcache主要用於讀操作,請求先到的memstore讀取資料,再到blockcache中讀取,再沒有就會到StoreFile中讀取,並把讀取的資料放入到blockcache中。