NameNode与SecondaryNameNode工作机制
第一阶段:NameNode启动
(1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改查的请求。
(3)NameNode记录操作日期,更新滚动日志(edits文件)
(4)NameNode在内存中对元数据进行增删改,并将元数据保存到镜像文件(fsimage)
注意:如果edits中的数据满了一百万条,则进行合并,NameNode会生成新的edits文件,并且将原来的edits文件改名,然后将edits文件和fsimage文件发送给SecondaryNameNode进行合并操作,SecondaryNameNode将生成新的fsimage文件,并发送给NameNode。
第二阶段:SecondaryNameNode工作
(1)SecondaryNameNode询问NameNode是否需要CheckPoint。直接带回NameNode是否检查结果。
(2)SecondaryNameNode请求执行CheckPoint。
(3)NameNode滚动正在写的edits日志。
(4)将滚动前的编辑日志和镜像文件拷贝到SecondaryNameNode。
(5)SecondaryNameNode加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件fsimage.chkpoint.
(7)拷贝fsimage.chkpoint到NameNode。
(8)NameNode将fsimage.chkpoint重新命名成fsimage。
CheckPoint时间设置
1)通常情况下,SecondaryNameNode每隔一下执行一次。
hdfs-default.xml
<property></