一、NameNode
Namenode 是 HDFS 的元数据服务器,管理并协调数据节点 Datanode 的工作,其内存中保存整个分布式文件系统的两类元数据:
(1)文件系统的名字空间,即系统目录树(恢复这个需要FsImages和Edit logs)。
(2)数据块副本与 Datanode 的映射,即副本的位置。
第(1)类元数据在 Namenode 上定期持久化,保存为镜像文件。数据块副本的位置信息没有实现持久化,而是在Namenode 启动时,通过接收 Datanode 的 Blockreport 获得。
在NameNode重启时,首先会将磁盘上(存在NameNode的磁盘上)的fsiamge命名空间镜像文件读入内存,恢复到某个时间的检查点,然后再读取编辑日志(Edit logs),进行重建(也可以成为合并)。
二、SecondaryNameNode
SecondaryNameNode定期将Namenode上的fsimage文件和原编辑日志下载到本地,并在内存中合并,将结果更新到Namenode中,此过程为hdfs的checkpoint机制。从而减少Edit logs文件数,避免Namenode重启时重建耗时过长
<property>
<name>dfs.namenode.checkpoint.period</name>
<value>3600</value>
<description>SecondaryNameNode进行checkpoint的间隔</description>
</property >