Hbase流程框架

Hbase 總體框架

注意點

1 客戶端如果是針對數據的增刪改查(DML)那麼不需要經過HMaster

2 每一個store是一個文件夾,存儲的是一個列族在這個regin下的數據;flush就會在hdfrs上store文件夾形成一個HFile文件,這樣時間久了會有很多小文件,後面會有針對這些小文件的合併和split。

3 Hlog操作日誌是實時落盤的,真正的內存數據是flush時落盤HFile

1 Hbase寫數據流程1

寫數據是先寫Hlog,實時落盤,之後再寫入內存,但是Hlog寫入也是事務的,如果日誌存儲失敗,內存中的數據也會一併刪除。

2 Hbase讀數據流程1

讀數據流程在具體的reginserver上,是讀storeFile+MemStore+BlockCache一塊讀取,然後看時間戳最新的rowkey的記錄。但是因爲一個store是一個文件夾,裏面有多個hFile文件,如果BlockCache已經緩存了一個HFile文件了,那麼就在讀取store文件夾(一個列族的其中一個regin)裏面相關記錄的其他文件就好了。綜上所述,讀比寫要慢。

3 Hbase compact合併小文件流程

注意:1) minor不會刪除歷史時間戳的記錄,但是major大合併只會保留最新的數據記錄。

2)另外一個刪除歷史數據的時機是flush的時候,但是隻會刪除相同rowkey的多條時間戳記錄都在內存的情況下。

以上針對update情況,注意flush不會刪除delete的數據記錄,這是肯定的,因爲磁盤裏可能還有相同rowkey的記錄。

delete記錄只會在major的時候刪除。

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章