NameNode和SecondaryNameNode工作机制
NameNode和SecondaryNameNode工作机制
HDFS集群中采用定期合并FsImage(镜像文件)和Edits(编辑日志)来备份NameNode内存中的元数据防止数据的断电丢失,定期合并FsImage和Edits的操作由SecondaryNamenode完成。
图示:
详解:
- 第一阶段:NameNode启动
(1)第一次启动NameNode格式化后,创建Fsimage和Edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求。
(3)NameNode记录操作日志,更新滚动日志。
(4)NameNode在内存中对元数据进行增删改。 - 第二阶段:Secondary NameNode工作
(1)Secondary NameNode询问NameNode是否需要CheckPoint并直接带回NameNode结果。
(2)Secondary NameNode请求执行CheckPoint。
(3)NameNode滚动正在写的Edits日志。
(4)第一次CheckPoint需要将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode,如果不是第一次CheckPoint,只拷贝编辑日志到Secondary NameNode,因为Secondary NameNode中也保存了上一次的合并的结果镜像文件。
(5)Secondary NameNode加载编辑日志和镜像文件到内存,合并。
(6)生成新的镜像文件fsimage.chkpoint。
(7)拷贝fsimage.chkpoint到NameNode。
(8)NameNode将fsimage.chkpoint重新命名成fsimage。