【问题标题】:Incompatible build versions error in Hadoop slave nodeHadoop 从节点中的构建版本不兼容错误
【发布时间】:2013-09-18 07:21:35
【问题描述】:

我的 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

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

【问题讨论】:

  • 看起来你可能对你的 hadoop 版本的 JAVA 有一些版本问题。
  • 两者都使用相同版本的 Java。我检查了 $HADOOP_HOME/conf/hadoop-env.sh 中的 JAVA_HOME 值
  • 它完全不同的问题。
  • @JtheRocker 我的问题不是“NamespaceId”不兼容,而是“构建版本”不兼容

标签: hadoop


【解决方案1】:

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

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

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

看看这是否有帮助。

【讨论】:

  • 我通过遵循链接中的步骤并稍作更改来解决了我的问题。我的主节点正在工作,但从节点中的 DataNode 没有运行。我将 hadoop 文件夹从主节点复制到从节点,并更改了从节点中的 conf/slaves 和 conf/masters 文件。谢谢。
  • 仅供参考:您提供的链接解决了我在 jobtracker(在主设备上)和 tasktracker(在从设备上)之间不兼容的构建版本/校验和时遇到的类似问题。谢谢!
【解决方案2】:

我遇到了同样的问题,已经解决了!我多次收到错误“不兼容的构建版本:namenode BV = ; datanode BV = 985326”,因为我在 mapred-site.xml 中的 ... 选项卡下有许多 ... 选项卡。我必须确保所有节点(主节点+从节点)中的所有配置都相同。如果 ... 选项卡中的单个值在一个节点与另一个节点之间不同,您可能会看到不兼容的构建版本错误。

总结如下: 1) 确保所有节点都具有相同的 hadoop 版本。 2) 确保所有节点中的所有 *-site.xml 都相同,即在 core-site.xml、mapred-site.xml 和 hdfs-site.xml 中使用相同的配置。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多