单机hadoop中的datanode失败

zzlelutf  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(348)

我使用以下教程在Ubuntu12.04 lts上设置并配置了sudo node hadoop环境http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-multi-node-cluster/#formatting-通过namenode访问hdfs文件系统
在输入hadoop/bin$start-all.sh之后,一切正常,然后我检查了jps,然后namenode、jobtracker、tasktracker、secondarynode已经启动,但是datanode没有启动。。。
如果有人知道如何解决这个问题,请让我知道。。

hivapdat

hivapdat1#

是的,我解决了。。。
java.io.ioexception:命名空间ID不兼容
如果您在datanode的日志(logs/hadoop hduser datanode-.log)中看到错误java.io.ioexception:incompatible namespaceids,那么您很可能会受到hdfs-107(以前称为hadoop-1212)问题的影响。
在我的机器上,完整的错误是这样的:。。。error org.apache.hadoop.dfs.datanode:java.io.ioexception:namespaceid在/app/hadoop/tmp/dfs/data:namenode namespaceid=308967713中不兼容;datanode namespaceid=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。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:从头开始我可以证明以下步骤解决了这个错误,但是副作用不会让你高兴(我也不会)。我找到的粗略解决方法是:
停止集群删除问题数据节点上的数据目录:目录由conf/hdfs-site.xml中的dfs.data.dir指定;如果您遵循本教程,则相关目录为/app/hadoop/tmp/dfs/data reformat the namenode(注意:在此过程中,所有hdfs数据都将丢失!)在删除所有hdfs数据时重新启动集群,并且从头开始听起来不是一个好主意(在初始设置/测试期间可能没问题),您可以尝试第二种方法。
解决方法2:更新有问题的datanodes的namespaceid非常感谢jaredstehler的以下建议。我还没有亲自测试过,但请随意试用并将您的反馈发送给我。此解决方法是“微创”的,因为您只需在有问题的数据节点上编辑一个文件:
停止datanode编辑/current/version中namespaceid的值以匹配当前namenode的值重新启动datanode如果按照我的教程中的说明操作,则相关文件的完整路径为:
namenode:/app/hadoop/tmp/dfs/name/current/version datanode:/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不兼容的命名空间ID

相关问题