1.SNN CheckPoint的处理流程

配置中配置做CheckPoint的两个条件,一个是文件大小editlog大于多大就做,另一个是时间维度,多长时间做一次。

(1)SNN首先检查是否需要进行checkpoint操作,如果上面两个条件任何一个满足了就可以

(2)通过RPC 向NameNode发送请求,rollEditLog()NameNode关闭现在的edit的stream,同时生成一个edit.new,并打开加入写入的源。

(3)SNN从NN处download fsimage文件和edit文件并进行merge

(4)merge结束后通知NN从SNN处拉去FSImage文件保存在NN的FSImage.ckpt上面

(5)一切顺利结束的话将edit.new重命名为edit,并open stream,将FSImage.ckpt重命名为FSImage,更新FSTime文件,更新时间戳

 

 

2、NN重启对Image和Edits的处理

先对各个目录的image和edit文件有效性进行判断,同时读取checkpoint的最近值。

如果image.ckpt存在,同时edit.new存在那么也许正进行一半,无法确定是否完成image拉取,删掉image.ckpt。否则将image.ckpt rename到image。

然后正常的读取FSImage,将edit merge进去。

如果存在edit.new 也merge进去。

05-08 15:09