gpt4 book ai didi

hadoop - Datanode 在单台机器上的 Hadoop 中失败

转载 作者:可可西里 更新时间:2023-11-01 14:19:40 26 4
gpt4 key购买 nike

我使用以下教程在 ubuntu 12.04 LTS 上设置和配置了 sudo node hadoop 环境 http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-the-hdfs-filesystem-via-the-namenode

输入 hadoop/bin $ start-all.sh 后一切顺利,然后我检查了 Jps然后NameNode、JobTracker、TaskTracker、SecondaryNode已经启动但是DataNode没有启动...

如果有人知道如何解决这个问题,请告诉我。

最佳答案

我已经解决了...

java.io.IOException: 不兼容的命名空间

如果您在 DataNode 的日志中看到错误 java.io.IOException: Incompatible namespaceIDs (logs/hadoop-hduser-datanode-.log),您很可能受到问题 HDFS-107(以前称为 HADOOP)的影响-1212).

完整的错误在我的机器上看起来像这样: ...错误 org.apache.hadoop.dfs.DataNode:java.io.IOException:/app/hadoop/tmp/dfs/data 中不兼容的命名空间 ID:namenode namespaceID = 308967713;数据节点命名空间ID = 113030094 在 org.apache.hadoop.dfs.DataStorage.doTransition(DataStorage.java:281) 在 org.apache.hadoop.dfs.DataStorage.recoverTransitionRead(DataStorage.java:121) 在 org.apache.hadoop.dfs.DataNode.startDataNode(DataNode.java:230) 在 org.apache.hadoop.dfs.DataNode.(DataNode.java:199) 在 org.apache.hadoop.dfs.DataNode.makeInstance(DataNode.java:1202) 在 org.apache.hadoop.dfs.DataNode.run(DataNode.java:1146) 在 org.apache.hadoop.dfs.DataNode.createDataNode(DataNode.java:1167) 在 org.apache.hadoop.dfs.DataNode.main(DataNode.java:1326)目前,似乎有两种解决方法,如下所述。

解决方法 1:从头开始我可以证明以下步骤解决了这个错误,但副作用不会让你开心(我也是)。我发现的粗略解决方法是:

停止集群删除有问题的DataNode上的数据目录:该目录由conf/hdfs-site.xml中的dfs.data.dir指定;如果您按照本教程进行操作,则相关目录为/app/hadoop/tmp/dfs/data重新格式化 NameNode(注意:在此过程中所有 HDFS 数据都将丢失!)重启集群当删除所有 HDFS 数据并从头开始听起来不是一个好主意(在初始设置/测试期间可能没问题),您可以尝试第二种方法。

解决方法 2:更新有问题的 DataNode 的命名空间 ID非常感谢 Jared Stehler 提出的以下建议。我还没有亲自测试过,但请随意尝试并向我发送您的反馈。这种解决方法是“微创”的,因为您只需在有问题的 DataNode 上编辑一个文件:

停止DataNode编辑/current/VERSION 中的 namespaceID 的值,使其匹配当前NameNode的值重启数据节点如果您按照我的教程中的说明进行操作,则相关文件的完整路径为:

NameNode:/app/hadoop/tmp/dfs/name/current/VERSIONDataNode:/app/hadoop/tmp/dfs/data/current/VERSION(背景:dfs.data.dir默认设置为${hadoop.tmp.dir}/dfs/data,我们设置hadoop.tmp.dir在本教程中到/app/hadoop/tmp)。

问题的解决方案在以下站点中给出了明确的解决方案:

http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#java-io-ioexception-incompatible-namespaceids

关于hadoop - Datanode 在单台机器上的 Hadoop 中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13062636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com