1、当客户端请求更新元数据时,namenode将在内存中更新元数据;
2、同时,会在编辑日志(edits文件)中记录元数据的操作日志;
----
1、secondery namenode请求namenode是否需要合并(checkpoint);
2、namenode通过检查edits文件的大小,判断是否需要合并,并把结果告诉secondery namenode;
3、若达到合并的条件,则namenode首先会滚动正在写的编辑日志文件(edits),以尽可能多地合并edits;
4、Secondery namenode在第一次执行合并时,会从namenode下载edits文件和fsimage文件;(下次合并时仅需下载edits文件)
5、secondery namenode将jsimage和edits文件加载到内存,执行合并;
6、将合并完的元数据dump到新的fsimage文件;
7、将新的faimage文件上传到namenode;
8、namenode用新的fsimage文件替换老的fsimage文件,并删除老的edits文件;