助けてくれてありがとう
次のバージョンを実行しています。
Hadoop 2.2飼育係3.4.5 Hbase 0.96 Hive 0.12
Http://:50070にアクセスすると、2つのノードが実行されていることが正しくわかります。
問題は、http://:8088にアクセスすると、実行中のノードが0と表示されることです。
:8088はリソースマネージャーを反映しており、実行中のノードマネージャーの数を示していることを理解しています。デーモンはすべて起動しますが、ノードマネージャーがリソースマネージャーに接続していないようです。
これはログファイルです:
2013-12-16 20:55:48,648 INFO org.Apache.hadoop.yarn.client.RMProxy: Connecting to ResourceManager at /127.0.0.1:8031
2013-12-16 20:55:49,755 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:50,756 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 1 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:51,757 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 2 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:52,758 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 3 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:53,759 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 4 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
2013-12-16 20:55:54,760 INFO org.Apache.hadoop.ipc.Client: Retrying connect to server: localhost/127.0.0.1:8031. Already tried 5 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
チェックしましたが、ポート8031が開いています。
編集:
将来これを見る人々のために、私は、yarn-site.xmlを次のように編集する必要がありました:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.Apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master-1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master-1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master-1:8088</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master-1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master-1:8033</value>
</property>
指定する必要があります
ホスト名:ポート
はい、ResourceManagerノードだけでなく、すべてのノードで設定する必要があります(同じhadoopのconf dirをすべてのノードにコピーするだけで問題ありません)。始めるために最低限必要な設定が必要な場合は、こちらをご覧ください: toster.ru/q/57046#answer_208326
非常によく似た問題があり、ResourceManager hostnameを指定するだけで解決しました。サービスごとに正確なアドレスを入力する必要はありません。
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master-1</value>
</property>
リソースマネージャーに接続していないノードマネージャーでしたが、非常によく似た症状の問題が発生しました。問題は、yarn-site.xmlに「yarn.nodemanager.hostname」という名前のプロパティがある(またはその可能性がある)ことでした。この設定には、HDFS「namenode」のホスト名が誤って入力されていましたが、YARNのノードごとの「nodemanager」のホスト名が含まれているはずです。他のプロパティに入力した内容に応じて、「接続の再試行」、「接続の拒否」、またはリソース割り当てエラーなどのさまざまなエラーが発生していました。これを「0.0.0.0」(デフォルト)に設定すると、問題が修正されました。
rsync
またはscp
コマンドを使用して、マスターノードからスレーブノードに構成ファイルをコピーできます。
for Host in $HADOOP_CONF_DIR/slaves; do
rsync -rv $HADOOP_CONF_DIR/* $Host:$HADOOP_CONF_DIR/
done
注、ここでは、すべてのノードが同じhadoopディレクトリレイアウトであると想定しています。