5

を使用して hadoopnode1 を開始するstart-all.shと、マスターとスレーブでサービスが正常に開始されます (スレーブの jps コマンド出力を参照)。しかし、管理画面でライブ ノードを見ようとすると、スレーブ ノードが表示されません。master からコマンドを実行してもhadoop fs -ls /完全に実行されますが、salve からはエラー メッセージが表示されます

@hadoopnode2:~/hadoop-0.20.2/conf$ hadoop fs -ls /
12/05/28 01:14:20 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 0 time(s).
12/05/28 01:14:21 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 1 time(s).
12/05/28 01:14:22 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 2 time(s).
12/05/28 01:14:23 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 3 time(s).
.
.
.
12/05/28 01:14:29 INFO ipc.Client: Retrying connect to server: hadoopnode1/192.168.1.120:8020. Already tried 10 time(s).

スレーブ (hadoopnode2) がマスター ノード (hadoopnode1) を検出/接続できないようです

私が欠けているものを教えてください。

マスター ノードとスレーブ ノードからの設定は次のとおりです - PS - 同じバージョンの Linux と Hadoop を実行しているマスターとスレーブと、マスター ノードからスレーブを起動できるため、SSH は完全に機能しています。

また、マスター (hadoopnode1) とスレーブ (hadoopnode2) の core-site.xml、hdfs-site.xml、mapred-site.xml の設定も同じです。

OS - Ubuntu 10 Hadoop版 -

oop@hadoopnode1:~/hadoop-0.20.2/conf$ hadoop version
Hadoop 0.20.2
Subversion https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707
Compiled by chrisdo on Fri Feb 19 08:07:34 UTC 2010

-- マスター (hadoopnode1)

hadoop@hadoopnode1:~/hadoop-0.20.2/conf$ uname -a
Linux hadoopnode1 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux

hadoop@hadoopnode1:~/hadoop-0.20.2/conf$ jps
9923 Jps
7555 NameNode
8133 TaskTracker
7897 SecondaryNameNode
7728 DataNode
7971 JobTracker

masters -> hadoopnode1
slaves -> hadoopnode1
hadoopnode2

--スレーブ (hadoopnode2)

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ uname -a
Linux hadoopnode2 2.6.35-32-generic #67-Ubuntu SMP Mon Mar 5 19:35:26 UTC 2012 i686 GNU/Linux

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ jps
1959 DataNode
2631 Jps
2108 TaskTracker

masters - hadoopnode1

core-site.xml
hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat core-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/var/tmp/hadoop/hadoop-${user.name}</value>
                <description>A base for other temp directories</description>
        </property>

        <property>
                <name>fs.default.name</name>
                <value>hdfs://hadoopnode1:8020</value>
                <description>The name of the default file system</description>
        </property>

</configuration>

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>hadoopnode1:8021</value>
                <description>The host and port that the MapReduce job tracker runs at.If "local", then jobs are run in process as a single map</description>
        </property>
</configuration>

hadoop@hadoopnode2:~/hadoop-0.20.2/conf$ cat hdfs-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
                <description>Default block replication</description>
        </property>
</configuration>
4

6 に答える 6

1

Web GUI で、クラスターのノード数を確認できます。予想より少ない場合は、マスターの /etc/hosts ファイルがホストのみであることを確認してください (2 ノード クラスターの場合)。

192.168.0.1 master
192.168.0.2 slave

127.0..... ip が表示された場合は、Hadoop が最初にホストとして認識するため、コメントアウトします。上記の問題があり、上記の方法で解決しました。お役に立てれば。

于 2012-12-02T10:55:02.680 に答える
1

sudo jps でサービスを確認してください

Restart Hadoop
Go to /app/hadoop/tmp/dfs/name/current
Open VERSION (i.e. by vim VERSION)
Record namespaceID
Go to /app/hadoop/tmp/dfs/data/current
Open VERSION (i.e. by vim VERSION)
Replace the namespaceID with the namespaceID you recorded in step 4.

これでうまくいくはずです。

于 2014-06-19T14:56:11.203 に答える
0

実際、あなたのケースには2つのエラーがあります。

can't connect to hadoop master node from slave

それはネットワークの問題です。テスト: curl 192.168.1.120:8020 .

通常の応答: curl: (52) サーバーからの空の応答

私の場合、ホストが見つからないというエラーが発生します。ファイアウォールの設定を見てみましょう

data node down:

それがhadoopの問題です。Raze2dust の方法は良いです。ログに Incompatible namespaceIDs エラーが表示される場合の別の方法を次に示します。

hadoop を停止し、現在の namenode の値と一致するように /current/VERSION の namespaceID の値を編集してから、hadoop を開始します。

以下を使用して、利用可能なデータノードをいつでも確認できます。hadoop fsck /

于 2012-05-30T03:29:10.843 に答える
0

新しいノードのホスト名をスレーブ ファイルに追加し、新しいノードでデータ ノードとタスク トラッカーを開始します。

于 2012-05-29T09:14:30.963 に答える
0

namenode と datanode のログを確認してください。( にある必要があります$HADOOP_HOME/logs/)。最も可能性の高い問題は、namenode と datanode の ID が一致しないことです。すべてのノードからを削除しhadoop.tmp.dir、namenode ( $HADOOP_HOME/bin/hadoop namenode -format) を再度フォーマットしてから、再試行してください。

于 2012-05-28T06:31:22.567 に答える
0

スレーブ 2 で考えます。スレーブ 2 は、8021 でリッスンするのではなく、同じポート 8020 でリッスンする必要があります。

于 2012-05-28T07:35:49.853 に答える