为什么每次重启机器后都需要格式化HDFS?

She*_*har 1 hadoop ubuntu-11.04

我在我的笔记本电脑上以伪分布式模式安装了Hadoop,操作系统是Ubuntu.

我已经更改了hadoop将存储其数据的路径(默认情况下hadoop将数据存储在/tmp文件夹中)

hdfs-site.xml 文件如下所示:

<property>
    <name>dfs.data.dir</name>
    <value>/HADOOP_CLUSTER_DATA/data</value>
</property>
Run Code Online (Sandbox Code Playgroud)

现在每当我重新启动机器并尝试使用start-all.sh脚本启动hadoop集群时,数据节点永远不会启动.我确认数据节点不是通过检查日志和使用jps命令启动的.

然后我

  1. 使用stop-all.sh脚本停止集群.
  2. 使用hadoop namenode -format命令格式化HDFS .
  3. 使用start-all.sh脚本启动集群.

现在一切正常,即使我再次停止并启动集群.仅当我重新启动计算机并尝试启动集群时才会出现问题.

  • 有没有人遇到类似的问题?
  • 为什么会发生这种情况
  • 我们怎样才能解决这个问题?

Rem*_*anu 7

通过改变dfs.datanode.data.dir远离/tmp你确实使数据(块)在重启时存活.然而,HDFS不仅仅是块.你需要确保所有相关的dirs指向远离/tmp,最值得注意的是dfs.namenode.name.dir(我不知道你必须改变其他目的,这取决于你的配置,但namenode目录是强制性的,也可以).

我还建议使用更新的Hadoop发行版.顺便说一下,1.1 namenode dir设置是dfs.name.dir.