Hadoop从属节点中的不兼容的构建版本错误

时间:2013-09-18 07:21:35

标签: hadoop

我的Hadoop集群运行没有任何错误。我不知道发生了什么变化但是当我尝试从master使用start-all.sh命令启动Hadoop组件时,我使用jps命令检查运行进程,并看到DataNode在从属节点中不起作用。

datanode日志如下。 Hadoop安装(1.0.4)的版本在群集中的计算机上是相同的。我找不到如何解决问题。

2013-09-18 09:35:21,638 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = noon101/10.240.20.30
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.4-SNAPSHOT
STARTUP_MSG:   build =  -r ; compiled by 'hduser' on Wed May 29 10:55:16 EEST 2013
************************************************************/
2013-09-18 09:35:21,752 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-09-18 09:35:21,761 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source MetricsSystem,sub=Stats registered.
2013-09-18 09:35:21,762 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-09-18 09:35:21,762 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-09-18 09:35:21,867 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source ugi registered.
2013-09-18 09:35:21,869 WARN org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Source name ugi already exists!
2013-09-18 09:35:26,964 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Incompatible build versions: namenode BV = 1393290; datanode BV =
2013-09-18 09:35:27,070 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Incompatible build versions: namenode BV = 1393290; datanode BV =
        at org.apache.hadoop.hdfs.server.datanode.DataNode.handshake(DataNode.java:566)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.startDataNode(DataNode.java:362)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.<init>(DataNode.java:299)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.makeInstance(DataNode.java:1582)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.instantiateDataNode(DataNode.java:1521)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.createDataNode(DataNode.java:1539)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.secureMain(DataNode.java:1665)
        at org.apache.hadoop.hdfs.server.datanode.DataNode.main(DataNode.java:1682)

2013-09-18 09:35:27,071 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down DataNode at noon101/10.240.20.30
************************************************************/

以下是datanode日志的一部分。 从节点:

STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = noon101/10.240.20.30
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.4-SNAPSHOT
STARTUP_MSG:   build =  -r ; compiled by 'hduser' on Wed May 29 10:55:16 EEST 2013

主节点:

STARTUP_MSG: Starting DataNode
STARTUP_MSG:   host = noon102/10.240.20.32
STARTUP_MSG:   args = []
STARTUP_MSG:   version = 1.0.4
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1393290; compiled by 'hortonfo' on Wed Oct  3 05:13:58 UTC 2012

查看节点时,我看到版本和构建值不同。即使这是问题,我仍然不知道如何解决它。

2 个答案:

答案 0 :(得分:2)

如果主名称节点上的conf目录有任何类型的更改,通常会发生这种情况。你确定没有某种运行的ant脚本或者与Hadoop的'lib'目录中的jar文件混淆的东西吗?

这个问题似乎相当普遍。以下链接有一个明确的逐步说明,说明如何挽救这种情况。它的主旨是,您尝试在备份后将Datanode的conf目录复制到主节点。

http://permalink.gmane.org/gmane.comp.jakarta.lucene.hadoop.user/22499

看看这是否有帮助。

答案 1 :(得分:1)

我遇到了同样的问题而且它已经解决了!我收到了错误&#34;不兼容的构建版本:namenode BV =; datanode BV = 985326&#34;因为我有很多次&lt;物业&gt; ......&lt; / property&gt;标签下...&lt;配置&gt; mapred-site.xml中的tab。我必须确保所有节点(主站+从站)中的所有配置都相同。如果&lt;中的单个值。物业&gt; ......&lt; / property&gt;选项卡从一个节点到另一个节点不同,您可能会看到“不兼容的构建版本”错误。

以下是摘要: 1)确保所有节点中都有相同的hadoop版本。 2)确保在core-site.xml,mapred-site.xml和hdfs-site.xml中使用相同配置的所有节点中,所有* -site.xml都相同。

祝你好运!