Nicht starten Sie node manager auf master
Ich bin die Einrichtung eines Hadoop YARN-cluster, und ich bin mit einer Maschine sowohl eine master-und eine slave. Wenn ich starten Sie das GARN über den folgenden Befehl aus, er startet den nodemanager auf Sklaven, aber nicht auf dem master-Knoten.
sbin/yarn-daemons.sh start nodemanager
Ich habe einen master, der den slave und dann habe ich noch zwei slaves in dem cluster, der nodemanagers die slaves sind ordnungsgemäß starten.
Den Fehler bekomme ich :
org.apache.hadoop.yarn.exceptions.YarnRuntimeException: java.net.BindException: Problem binding to [0.0.0.0:8040] java.net.BindException: Address already in use; For more details see: http://wiki.apache.org/hadoop/BindException
Ausgabe einiger Befehle .
cat /etc/services | grep 8040
ampify 8040/tcp # Ampify Messaging Protocol
ampify 8040/udp # Ampify Messaging Protocol
lsof -i tcp:8040
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 28021 df 195u IPv6 3580602 0t0 TCP server1.mydomain.com:ampify (LISTEN
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter der Standard-Konfiguration, die Hadoop-Schiffe, port 8040 ist der port, den der NodeManager verwendet für den localizer. Dies ist im Grunde ein server-Endpunkt dafür verantwortlich, das die erforderlichen Dateien zum ausführen von einem container auf dem lokalen Knoten. (Dies kann beispielsweise ein MapReduce-job jar-Datei oder eine verteilte cache-Dateien.)
Unter der Annahme, dass es einen weiteren server auf der Maschine (hier dargestellt als Ampify) rechtmäßig gebunden an port 8040, und Sie wollen nicht zu stoppen, der service, dann ist es möglich zu konfigurieren, dass der port verwendet, der von der NodeManager für den localizer. Set property
yarn.nodemanager.localizer.address
in Ihrem yarn-site.xml Datei. Dies ist hier dokumentiert:http://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
Ziehen, dass die XML-Quelle in den Hadoop-Baum, hier ist die Dokumentation für die Eigenschaft:
yarn.resourcemanager.address
in Ihrem yarn-site.xml legen Sie zu so etwas wierm.mydomain.com:8032
, was auch immer Ihr hostname ist. (Danke für die Nachfrage. Ich hatte vergessen, über diesen Teil in meiner letzten Antwort.)Obige Fehlermeldung bedeutet, Sie versuchen, einen Prozess zu starten, die auf 8040, die bereits von einer anderen Instanz genutzt.
Um loszuwerden, diese Fehler, müssen Sie beenden Sie den Prozess, die derzeit hören auf port 8040. Ihre lsof-Ausgabe sagt pid ist 28021. beenden Sie den Prozess mit dem folgenden Befehl ein, und starten Sie wieder