关于Checkpoint正经解释
Checkpoint过程
每达到触发条件,会由secondary namenode 将 namenode 上积累的所有 edits 和一个最新的 fsimage 下载到本地,并加载到内存进行 merge(这个过程称为 checkpoint),如下图所示:
Checkpoint 详细步骤
- NameNode 管理着元数据信息,其中有两类持久化元数据文件:edits 操作日志文件和fsimage元数据镜像文件。新的操作日志不会立即与 fsimage 进行合并,也不会刷到NameNode 的内存中,而是会先写到 edits 中(因为合并需要消耗大量的资源),操作成功之后更新至内存。
- 有dfs.namenode.checkpoint.period 和dfs. namenode. checkpoint.txns两个配置,只要达到这两个条件任何一个,secondarynamenode 就会执行 checkpoint 的操作。
- 当触发checkpoint操作时,NameNode会生成一个新的edits即上图中的edits.new文件,同时SecondaryNameNode 会将 edits 文件和 fsimage 复制到本地(HTTP GET 方式)。
- secondarynamenode 将下载下来的 fsimage 载入到内存,然后一条一条地执行 edits 文件中的各项