1

私の Hadoop クラスターは間違いなく実行されていました。何が変わったのかわかりませんが、マスターから start-all.sh コマンドで Hadoop コンポーネントを起動しようとすると、jps コマンドで実行中のプロセスを確認すると、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

ノードを見ると、バージョンとビルドの値が異なっていることがわかります。これが問題であっても、まだ解決方法がわかりません。

4

2 に答える 2

2

これは通常、Master Name ノードの conf ディレクトリになんらかの変更があった場合に発生します。Hadoop の 'lib' ディレクトリにある jar ファイルを実行したり、jar ファイルをいじったりする何らかの ant スクリプトが存在しなかったのは確かですか?

この問題はかなり蔓延しているようです。次のリンクには、状況を改善する方法の明確なステップバイステップの説明があります。要点は、データノードのconfディレクトリをバックアップしてからマスターノードにコピーしようとすることです。

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

これが役立つかどうかを確認してください。

于 2013-09-18T14:29:02.633 に答える