NameNode将文件系统的元数据以不同的文件保存在本地磁盘中,其中最重要的两个文件是fsp_w_picpath和edits。fsp_w_picpath包含文件系统元数据的完整快照,而edits仅包含元数据的增量修改。

NameNode启动后,直接加载fsp_w_picpath到RAM,再通过回放引入edits的增量变化。


NameNode与SecondaryNameNode之间交互定期将edits引入fsp_w_picpath:

  1. SecondaryNameNode引导NameNode滚动更新edits文件,并开始将新的内容写入edits.new

  2. SecondaryNameNode将NameNode的fsp_w_picpath和edtis文件复制到本地的检查点目录

  3. SecondaryNameNode载入fsp_w_picpath文件,回放edits内容,将其合并到fsp_w_picpath,将新的fsp_w_picpath文件压缩后写入磁盘

  4. SecondaryNameNode将新的fsp_w_picpath文件送回NameNode,NameNode在接收新的fsp_w_picpath文件后直接加载和应用该文件

  5. NameNode将edits.new更名为edits

  6. 默认情况下,该过程每小时执行一次,或者当NameNode的edits文件达到默认的64MB时也会被触发