NameNode将文件系统的元数据以不同的文件保存在本地磁盘中,其中最重要的两个文件是fsimage和edits。fsimage包含文件系统元数据的完整快照,而edits仅包含元数据的增量修改。
NameNode启动后,直接加载fsimage到RAM,再通过回放引入edits的增量变化。
NameNode与SecondaryNameNode之间交互定期将edits引入fsimage:
- SecondaryNameNode引导NameNode滚动更新edits文件,并开始将新的内容写入edits.new
- SecondaryNameNode将NameNode的fsimage和edtis文件复制到本地的检查点目录
- SecondaryNameNode载入fsimage文件,回放edits内容,将其合并到fsimage,将新的fsimage文件压缩后写入磁盘
- SecondaryNameNode将新的fsimage文件送回NameNode,NameNode在接收新的fsimage文件后直接加载和应用该文件
- NameNode将edits.new更名为edits
- 默认情况下,该过程每小时执行一次,或者当NameNode的edits文件达到默认的64MB时也会被触发
时间: 2024-11-08 20:29:44