?NameNode在運行過程中,會記錄HDFS文件系統的狀態到一個本地的日志文件edits. 當NameNode發生重啟(這種情況一般很少會發生,只有當服務器發生宕機),執行一下操作步驟:
1:從鏡像中讀取HDFS文件系統的狀態。
2:將edits log中已記錄的狀態信息寫入到鏡像中,并且在一個空的edits log中繼續執行狀態記錄操作。
edits log和鏡像的合并操作只有在namenode啟動的時候才會發生合并操作。
在一個比繁忙的集群中,長時間的運行會生成一個很大的edits log。Secondary NameNode會定期(合并的策略可以自定義配置,默認為1小時)的合并edits log和鏡像。這樣可以使得NameNode在重啟時,節約鏡像和Edits log的合并時間,節約內存空間。Secondary NameNode存儲了最新的CheckPoint在NameNode目錄下。所以,Secondary NameNode的鏡像,如果需要的話,NameNode可以隨時讀取。
ChekPoint工作流程:
BackUp Node:
BackUp Node提供了與CheckPoint一樣的功能(都是 用于備份集群狀態,以便于發生故障時,能夠恢復),
維護一個與NameNode一樣的內存工作空間(NameSpace),并且實時更新最新的NameNode狀態到BackUp Node自己的工作空間。同時接收NameNode的edits,持久化到硬盤。BackUp Node目的與CheckPoint一致,但是,BackUp Node動態的同步NameNode的狀態到內存中,不需要通過創建checkpoints下載鏡像和edits log,所以它的處理更加有效,快速。BackUp Node只需要保存鏡像和edits log到它自己的命名空間。
?BackUp Node啟動方式:bin/hdfs namenode -backup
ImportCheckPoint 沒理解什么時候執行和執行方式。