何为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这些时间。