standby NN每隔一段时间(由参数dfs.ha.tail-edits.period决定,默认是60s)去检查Journal node上新的Edits log文件。
standby NN每隔一段时间(由参数dfs.namenode.checkpoint.check.period决定,默认是60s)去检查是否满足建立checkpoint的条件。
条件有两个:
(1) 距离上次checkpoint的时间间隔 >= ${dfs.namenode.checkpoint.period}. 默认3600秒(1小时).
(2) Edits中的事务条数达到${dfs.namenode.checkpoint.txns}限制. 默认1,000,000.
满足checkpoint条件时, standby NN会做一次checkpoint,记录standby NN合并到了哪个Edits log文件., 然后合并新的Edits log到fsimage, 并将fsimage同步到active NN上(默认${dfs.namenode.checkpoint.period}. 1小时upload一次).
如果active NN挂了, standby NN会检查上一次checkpoint之后JN上新的Edits log文件, 并合并成fsimage, 取代active NN.