2013-12-16 13 views
14

góry dzięki za wszelką pomocYARN ResourceManager nie podłączenia do nodemanager

Używam następujących wersjach:

Hadoop 2.2 Heca 3.4.5 HBase 0,96 gałąź 0,12

Kiedy idę do http: //: 50070 Jestem w stanie poprawnie zobaczyć, że działają 2 węzły.

Problem występuje, gdy przejdę do http: //: 8088 pokazuje 0 węzłów działających.

Rozumiem, że: 8088 odzwierciedla wskaźnik resourcemanager i pokazuje liczbę działających nodemanagerów. Demony zaczynają się, ale wydaje się, że nodemaniatorzy nie łączą się z menedżerem resourcemanager.

Jest to plik dziennika:

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) 

Sprawdziłem i port 8031 ​​jest otwarty.

EDIT:

Dla osób oglądających to w przyszłości, musiałem edytować przędzy site.xml aby wyglądać następująco:

<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> 
+1

Czy wskazałeś nazwę hosta menedżera zasobów na adres yarn.resourcemanager.resource-tracker.address? – facha

+0

Czy potrzebuję tylko nazwy hosta? Czy nazwa hosta i port? A czy jest to tylko w węźle nodemanager lub we wszystkich węzłach? Wypróbowałem to, ale nic nie zmieniło, mogło być tak, że źle zepsułem port - nie jestem pewien, gdzie sprawdzić, z którego portu korzystać. –

+1

Będziesz potrzebował sprecyzować nazwę hosta: port. Tak, musi być ustawiony na wszystkich węzłach, a nie tylko na węźle ResourceManager (wszystko będzie dobrze, wystarczy skopiować ten sam kod confo do wszystkich węzłów). Jeśli potrzebujesz minimalnych roboczych konfiguracji, aby zacząć, zajrzyj tutaj: http://toster.ru/q/57046#answer_208326 – facha

Odpowiedz

7

Musisz określić

hostname: port

Tak, to musi być ustawione na całej nod es, nie tylko węzeł ResourceManager (Będziesz dobrze kopiował ten sam hadoop's conf dir do wszystkich twoich węzłów). Jeśli potrzebujesz niektóre minimalne configs pracy, aby zacząć, zajrzyj tutaj: toster.ru/q/57046#answer_208326

0

Polecenie rsync lub scp może być używany do kopiowania plików konfiguracyjnych z węzła nadrzędnego do węzłów podrzędnych:

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

Uwaga, tutaj zakładam, że wszystkie węzły mają ten sam układ katalogu hadoop.

8

Miałem bardzo podobny problem i został rozwiązany po prostu podając nazwę hosta ResourceManager , nie trzeba przeliterować dokładnego adresu na usługę.

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

Też miałem ten sam problem, ale w moim przypadku tylko jedno zarządzanie węzłem było wymienione w menedżerze zasobów. Umieściłem poniżej właściwość w pliku yarn-site.xml i mogłem zobaczyć węzły wymienione w RM.

<property> 
    <name>yarn.resourcemanager.hostname</name> 
    <value><master-1></value> 
</property> 
-2
  1. check YARN HA jest włączona, czy nie?
  2. W przypadku, gdy jest włączony, wówczas dla każdego menedżerów zasobów wymienionych w przędzy site.xml yarn.resourcemanager.ha.rm identyfikatorów (np RM1, RM2) uruchomienia usługi ResourceManager.
0

Doświadczyłem problemu z bardzo podobnymi objawami, chociaż to nodemanager nie łączył się z menedżerem zasobów. Problem polegał na tym, że w yarn-site.xml istnieje (lub może być) właściwość o nazwie "yarn.nodemanager.hostname". To ustawienie zostało przypadkowo wypełnione nazwą hosta "namenode" HDFS, ale ma zawierać nazwę hosta YARN na węzeł "nodemanager". W zależności od tego, co zostało wprowadzone dla innych właściwości, powodowało to różne błędy, takie jak "Ponawianie połączenia", "Odmowa połączenia" lub błędy alokacji zasobów. Ustawienie tego na "0.0.0.0" (domyślnie) naprawiło problem.

Powiązane problemy