姜小嫌

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
dfs.namenode.checkpoint.period
--两次检查点创建之间的固定时间间隔,默认3600,即1小时。所以去ann snn 看到的fsimage 相隔1个小时。

dfs.namenode.checkpoint.txns
--standby namenode 检查的事务数量。若检查事务数达到这个值,也触发一次checkpoint,1,000,000。

以上两个参数都是触发snn checkpoint 的条件

dfs.namenode.checkpoint.check.period
--standby namenode检查是否满足建立checkpoint的条件的检查周期。默认60,即每1min检查一次。

dfs.namenode.num.checkpoints.retained
--在namenode上保存的fsimage的数目,超出的会被删除。默认保存2个。

dfs.namenode.num.checkpoints.retained
--最多能保存的edits文件个数,默认为1,000,000. 为防止standby namenode宕机导致edits文件堆积的情况,设置的限制。

dfs.ha.tail-edits.period
--standby namenode每隔多长时间去检测新的Edits文件。只检测完成了的Edits, 不检测inprogress的文件。default:60s

StandbyCheckpointer 的doWork()
 SNN查看是否满足创建checkpoint 的条件:
1) 距离上次checkpoint的时间间隔 >= ${dfs.namenode.checkpoint.period}(
2) Edits中的事务条数达到${dfs.namenode.checkpoint.txns}限制
这两个条件任何一个被满足了,就触发一次checkpoint 创建。

也可以手动checkpoint :

1. hdfs dfsadmin -safemode enter
 >Safe mode is ON in dev01/192.168.254.43:8020
 >Safe mode is ON in dev02/192.168.254.44:8020

2. hdfs dfsadmin -saveNamespace
  > Save namespace successful for dev01/192.168.254.43:8020
  > Save namespace successful for dev02/192.168.254.44:8020

3. hdfs dfsadmin -safemode leave
 >Safe mode is OFF in dev01/192.168.254.43:8020
 >Safe mode is OFF in dev02/192.168.254.44:8020
首先,checkpoint 之前要先进入安全模式。进入安全模式后,执行saveNamespace命令,他会把a-nn的fsimage 与 大于fsimage txid的editlog(包括finalized 与 in_progress的)合并成新的fsimage并落盘,然后新生成一个editlog。

checkpoint before:

checkpoint after:


参考:http://blog.cloudera.com/blog/2014/03/a-guide-to-checkpointing-in-hadoop/

posted on 2018-09-28 15:51  姜小嫌  阅读(2320)  评论(0编辑  收藏  举报