当namenode启动时,它从映像文件fsimage读取HDFS状态,然后应用编辑日志文件中的编辑.
如果我没有错,Name节点启动意味着我们写start-all.sh.所以在这个启动时间我认为它读取了fsimage并编辑日志并合并它们.但是从哪个文件夹或从哪个位置实际读取这些内容?
在Hadoop的1.x中start-all.sh脚本内部执行两种运行start-dfs.sh
和start-mapred.sh
.start-dfs.sh将启动hdfs所需的所有守护进程,即:datanode,namenode,secondary namenode
检查点操作(将编辑日志应用于fsimage)在namenode start期间发生,并且可以在namenode运行期间通过调整参数来配置此活动hdfs-site.xml --> dfs.namenode.checkpoint.period
.
在namenode启动期间,namenode守护进程从指定的目录中加载fsimage.hdfs-site.xml -> dfs.name.dir.
此属性应该被覆盖,否则它将采用默认值(file:///tmp/dfs/name/
)
可以通过检查编辑日志的值来找到编辑日志的位置hdfs-site.xml -> dfs.name.edits.dir
.dfs.name.edits.dir的默认值是$ {dfs.name.dir}.
在hadoop-2.0中更改了上述属性名称