1、DataNode為每一個數據復制數據副本,保存在其它DataNode中。
2、NameNode文件系統的元數據全保存在RAM中,DataNode初始化和每隔1小時,向NameNode發送塊報告,以便NameNode掌握各個DataNode的運行狀態,并進行DataNode的映照。
3、預寫日志。通過在edits中順序增加的方式減少I/O操作。
4、fsimage:NameNode啟動后,加載fsimage到RAM,引入edits變化。
5、Hadoop的新版本已實現周期性更換edits文件,提供事務ID進行標識,支持數據回流。
1、DataNode為每一個數據復制數據副本,保存在其它DataNode中。
2、NameNode文件系統的元數據全保存在RAM中,DataNode初始化和每隔1小時,向NameNode發送塊報告,以便NameNode掌握各個DataNode的運行狀態,并進行DataNode的映照。
3、預寫日志。通過在edits中順序增加的方式減少I/O操作。
4、fsimage:NameNode啟動后,加載fsimage到RAM,引入edits變化。
5、Hadoop的新版本已實現周期性更換edits文件,提供事務ID進行標識,支持數據回流。
HDFS中的操作日志文件即WAL,寄存在edits中。
1、NameNode將改動內容寫到edits。
2、edits會漸漸變大。
3、定期將edits加入fsimage
NameNode簡稱NN,Secondary NameNode簡稱SNN,為次NameNode。
1、次NameNode引導NameNode轉動更新edits文件,將更新內容寫入edits.new中。
2、次NameNode將NameNode的fsimage和edits文件復制到本地檢查點目錄
3、次NameNode載入fsimage文件,將edits內容合并到fsimage,將新的fsimage文件緊縮后寫入磁盤。
4、次NameNode將新的fsimage文件送回NameNode 。
5、NameNode接收新的fsimage文件后,直接加載使該文件生效。
6、NameNode將edits.new改回為edits。
7、到此為止,本次對fsimage的更新完成。edits為以后增加的新內容,下次迭代時可繼續使用這些內容。