何为Checkpoint

为何需要Checkpoint

主要是提高HDFS集群启动速度。NameNode在启动时要回放edit log。

Checkpoint的具体流程

触发Checkpoint条件

两个触发条件满足任何一个就会启动Checkpoint。

  • 时间:配置选项dfs.namenode.checkpoint.period,默认1小时。
  • 事务数量:配置选项dfs.namenode.checkpoint.txns,默认100万条日志。

每隔Math.min(checkpointCheckPeriod, checkpointPeriod)时间间隔,检查一次是否满足条件。
也就是配置dfs.namenode.checkpoint.check.period和dfs.namenode.checkpoint.period取最小值。默认1分钟。
底层控制间隔的原理是,使CheckpointerThread线程Sleep这些时间。