web-dev-qa-db-ja.com

YARN Resourcemanagerがnodemanagerに接続しない

助けてくれてありがとう

次のバージョンを実行しています。

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> 
15
Aman Chawla

指定する必要があります

ホスト名:ポート

はい、ResourceManagerノードだけでなく、すべてのノードで設定する必要があります(同じhadoopのconf dirをすべてのノードにコピーするだけで問題ありません)。始めるために最低限必要な設定が必要な場合は、こちらをご覧ください: toster.ru/q/57046#answer_208326

8
facha

非常によく似た問題があり、ResourceManager hostnameを指定するだけで解決しました。サービスごとに正確なアドレスを入力する必要はありません。

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>master-1</value>
</property>
8

リソースマネージャーに接続していないノードマネージャーでしたが、非常によく似た症状の問題が発生しました。問題は、yarn-site.xmlに「yarn.nodemanager.hostname」という名前のプロパティがある(またはその可能性がある)ことでした。この設定には、HDFS「namenode」のホスト名が誤って入力されていましたが、YARNのノードごとの「nodemanager」のホスト名が含まれているはずです。他のプロパティに入力した内容に応じて、「接続の再試行」、「接続の拒否」、またはリソース割り当てエラーなどのさまざまなエラーが発生していました。これを「0.0.0.0」(デフォルト)に設定すると、問題が修正されました。

0
Night Owl

rsyncまたはscpコマンドを使用して、マスターノードからスレーブノードに構成ファイルをコピーできます。

for Host in $HADOOP_CONF_DIR/slaves; do 
    rsync -rv $HADOOP_CONF_DIR/* $Host:$HADOOP_CONF_DIR/
done

、ここでは、すべてのノードが同じhadoopディレクトリレイアウトであると想定しています。

0
Shumin Guo