元数据备份目录项主要涉及的场景:
1、NameNode启示时,从元数据备份目录中检查最新的fsimage和edits,读取到内存合并,然后将fsimage写回到指定的备份目录,并且重置edits
2、元数据更新时,NameNode将日志写入edits
3、做cheakpoint时,namenode将checkpoint好的fsimage写回,并重新配置edits
1、nn启动加载元数据。namenode有一个静态初始化模块,调用Configuration的静态函数addDefaultResource将hdfs-default.xml和hdfs-site.xml加入到Configuration的DefaultResource中。解析出备份目录,加载最新的fsimage和edits,
一个checkpoint过程:snn通知nn产生一个新的edit文件edits.new,之后日志更新将会写入到edits.new中。snn从nn下载fsimage和edits文件,合并,产生新的fsimage.ckpt,将其传给nn,最后nn将edits.new重命名为edits,将fsimage.ckpt重命名为fsimage。
2、元数据更新以及日志写入场景。以mkdir为例,由客户端发起,具体实现调用DFSClient.java中的mkdirs方法,mkdirs又通过RPC远程调用nn所实现的mkdirs接口。