HDFS启动过程
整个启动过程分为两个部分:
1、namenode启动
(1)第一次启动namenode格式化后,创建fsimage和edits(在namenode所在结点的hadooop/data目录下)文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求,namenode记录操作日志,更新滚动日志。
(3)namenode在内存中对数据进行增删改查
2、secondary namenode启动
(1)Secondary NameNode询问namenode是否需要checkpoint,如果需要,secondary namenode请求主namenode停止正在编辑的日志“edits_inprogress_*”,新的编辑操作记录到新的edits_inprogress_文件中,主namenode更新seen_txid文件
(2)secondary namenode从主namenode拉取镜像文件和编辑日志
(3)secondary namenode将镜像文件加载至内存,执行编辑日志中的事务,合并镜像文件和未融合的编辑日志成 fsimage_*.ckpt文件
(4)secondary namenode将新的镜像文件发送到主namenode,主namenode将其保存为临时的 fsimage_*.ckpt 文件
(5)主namenode将 fsimage_*.ckpt重命名为 fsimage 文件
注意:当namenode处在安全模式时,可以通过hdfs dfsadmin -saveNamespace创建检查点