当前位置:  开发笔记 > 运维 > 正文

为什么Hadoop不兼容的namespaceID问题会发生?

如何解决《为什么Hadoop不兼容的namespaceID问题会发生?》经验,为你挑选了3个好方法。

这是一个相当充分记录的错误,修复很容易,但是有谁知道为什么Hadoop datanode NamespaceID可以如此轻松搞砸或者Hadoop在启动数据节点时如何分配NamespaceID?

这是错误:

2010-08-06 12:12:06,900 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible namespaceIDs in /Users/jchen/Data/Hadoop/dfs/data: namenode namespaceID = 773619367; datanode namespaceID = 2049079249
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.doTransition(DataStorage.java:233)
    at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:148)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:298)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.(DataNode.java:216)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1283)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1238)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1246)
    at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1368)

这似乎甚至发生在单节点实例上.



1> Harsha Hulag..:

每次格式化HDFS时,Namenode都会生成新的namespaceID.我认为这可能是为了区分当前版本和以前的版本.如果某些内容不正确,您可以随时回滚到以前的版本,如果namespaceID对于每个格式化的实例都不是唯一的,那么这可能是不可能的.

NamespaceID还连接namenode和datanode.Datanodes通过namespaceID将自己绑定到namenode



2> avner..:

这个问题在下面的精细指南中得到了很好的解释和帮助



3> user242766..:

我也得到了这个,然后我尝试将配置放入hdfs-site.xml而不是core-site.xml.

似乎现在停止并开始没有该错误.

[编辑,2010-08-13]

实际上这仍然在发生,它是格式化引起.

如果在执行格式化时观察VERSION文件,您会看到(至少我这样做)namenode被分配了一个新的namespaceID,但数据节点却没有.

快速解决方案是在格式化之前删除datanode的VERSION.

[TIDE,2010-08-13]

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有