2

对于我的 Hadoop 实验,我在我的 macbook 上的 localhost 上设置了单节点 HDFS。每次实验后,我都会关闭 hadoop 服务(./bin/stop-all.sh)。

几乎每次我再次启动我的设置(start-all.sh)时,我发现我的 HDFS 已损坏,我总是需要格式化我的名称节点并重新启动服务以再次访问 HDFS。

当我在启动后停止获取 namenode 管理员访问权限 (http://localhost:50070/) 时,我意识到了这一点。

在启动期间,我的名称节点日志显示“2012-11-29 15:27:43,160 错误 org.apache.hadoop.hdfs.server.namenode.FSNamesystem:FSNamesystem 初始化失败。org.apache.hadoop.hdfs.server.common.InconsistentFSStateException:目录 /private/tmp/hadoop-rupadhyay/dfs/name 处于不一致状态:存储目录不存在或不可访问。”

我不确定我在这里缺少什么。

4

2 回答 2

4

使用 tmp 目录意味着您必须确保在每次重新启动时清除该目录并重新格式化您的名称节点。这是因为操作系统可能会随心所欲地从 tmp 目录中删除文件,从而使您的 hdfs 处于不稳定状态。

于 2012-11-29T23:43:23.887 回答
4

我遇到了同样的问题,谷歌解决了这个问题,core-site.xml 中的 hadoop.tmp.dir 默认为 /tmp/hadoop-username ,每次重新启动时都会清除它。您可以将其更改为其他目录。一个例子是

<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

于 2013-06-05T05:17:49.297 回答