Hbase深入學習

Memstore&StoreFile
client寫入->存入MemStore,一直到MemStore滿->flush成爲一個StoreFile,直到增長到一定的閥值->compact合併操作->將多個storefile合併成一個storefile,同時進行版本合併和數據的刪除->當storefile compact後,逐步形成越來越大的storefile->單個storefile大小超過一定的閥值後,觸發split操作,把當前Region Split成2個Region,Region會下線,新split出的2個子Region會被HMaster分配到相應的HRegionServer上,使得原先的1個Region的壓力得以分流到2個Region上.
Hbase只是增加數據,有所得更新和刪除操作,都是在compact階段做的,所以,用戶寫操作值需要進入到內存即可立即返回,從而保證了IO的高性能.
HLog文件
WAL意爲Write ahead log,類似mysql的binlog,用來做災難恢復,Hlog記錄數據的所有變更,一旦有數據的修改,就可以從log中恢復。每個HRegionServer維護一個Hlog,而不是每個HRegion一個。這樣不同的region(來自不同的表)的日誌會混在一起,這樣做的目的是不斷追加單個文件相對於同時寫多個文件而言,可以減少磁盤的尋址次數,提高了對錶的寫性能.這樣的弊端:如果一臺HregionServer下線,爲了恢復其上的region,需要將HRegionServer上的log進行拆分分發到其他的HRegionServer上進行恢復.

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