Hbase 寫工做機制

客戶端——MemStore——列族——Hfile服務器

一、Hbase在執行寫操做的時候,首先會將寫動做記錄在hlog,memstore中,只有在這兩個地方都確認完成後才被記錄操做成功。內存

Memstore是內存裏面的緩衝區,Hbase在在寫入硬盤以前會在這個緩衝區內積累,當MemStore的數據量達到閥值時,纔開始向硬盤中寫入,在列族中生成一個HFile文件,一個列族能夠有多個HFile文件。
it

二、那麼如今就面臨一個問題,大型集羣中出現故障很正常,若是MemStore沒有來的急刷寫,服務器掛掉了咋辦?集羣

Hbase採用的機制時在寫動做完成以前寫入wal,每一臺服務器維護着一個  WAL文件,記錄着發生的變化,直到在該文件中新紀錄寫入成功以後才被認爲時成功,若是出現當機能夠經過WAL 來恢復數據。不須要手動執行恢復。若是想禁用wal,  能夠經過file

Put p = new Put();數據

p.setWriteToWal(false);客戶端

來禁用。文件

若有錯誤你們積極提出,一同進步。
錯誤

相關文章
相關標籤/搜索