当namenode启动时,它会从图像文件fsimage读取HDFS状态,然后应用编辑日志文件中的编辑。
如果我没有错,Name节点启动意味着我们写start-all.sh。所以在这个启动时间我认为它读取了fsimage并编辑日志并合并它们。但是从哪个文件夹或者从哪个位置实际读取这些内容?
答案 0 :(得分:7)
在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守护进程从hdfs-site.xml -> dfs.name.dir.
中指定的目录加载fsimage此属性应该被覆盖,否则它将采用默认值(file:///tmp/dfs/name/
)
通过检查hdfs-site.xml -> dfs.name.edits.dir
的值可以找到编辑日志的位置。 dfs.name.edits.dir的默认值是$ {dfs.name.dir}。
在hadoop-2.0
中更改了上述属性名称答案 1 :(得分:0)
启动守护程序时,namenode将检查名为
的配置xml文件芯-site.xml中
位于您的hadoop conf文件夹中。在我的系统中,它位于usr / lib / hadoop / conf,这是hadoop安装目录。
在该配置文件中,您可以看到,
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/var/lib/hadoop-0.20/cache/${user.name}</value>
</property>
</configuration>
在此代码中/var/lib/hadoop-0.20/cache/是fsimage,fstime和edits log的位置。
如果在某个特定时间内namenode失败,fsimage数据将暂时存储在secondynamenode中,并且在namenode获取后,临时数据将存储在fsimage中。
答案 2 :(得分:0)
是您可以找到编辑和fsimage文件的位置..
/应用/ hadoop的/ TMP / DFS /名称/电流
[core-site.xml]
<property><name>hadoop.tmp.dir</name><value>/app/hadoop/tmp</value>
我相信这会对你有帮助..