对于我的Hadoop实验,我在我的macbook上的localhost上设置了单节点HDFS。每次实验结束后,我都会关闭hadoop服务(./bin/stop-all.sh)。
几乎每次当我重新启动我的设置( start -all.sh)时,我发现我的HDFS损坏了,我总是需要格式化我的namenode并重新启动服务才能再次访问HDFS。
当我在启动后停止获取namenode管理员访问(http://localhost:50070/)时,我意识到了这一点。
在启动过程中,我的命名节点日志显示:"2012-11-29 15:27:43,160错误:私有目录初始化失败。org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:目录/ org.apache.hadoop.hdfs.server.namenode.FSNamesystem: /tmp/hadoop-rupadhyay/dfs/ FSNamesystem处于不一致的状态:存储目录不存在或无法访问。“
我不确定我在这里遗漏了什么。
发布于 2012-11-30 07:43:24
使用tmp目录意味着您必须确保在每次重新启动时清除该目录并重新格式化您的名称节点。这是因为操作系统可能会随意删除tmp目录中的文件,使您的hdfs处于不稳定状态。
发布于 2013-06-05 13:17:49
我也有同样的问题,谷歌解决了这个问题,核心-site.xml中的用户名默认为/tmp/hadoop- hadoop.tmp.dir,它在每次重启时都会被清除。您可以将其更改为其他目录。下面是一个例子
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdfs-tmp</value>
</property>
</configuration>这个链接也很有帮助,Namenode not getting started
https://stackoverflow.com/questions/13636809
复制相似问题