Basic-Spark-Beispiel funktioniert nicht
Ich bin zu lernen, Funken und laufen wollten die einfachste möglich-cluster aus zwei physischen Maschinen. Ich habe all das getan, basic setup, und es scheint in Ordnung zu sein. Der Ausgang des automatischen start-Skript sieht wie folgt aus:
[username@localhost sbin]$ ./start-all.sh
starting org.apache.spark.deploy.master.Master, logging to /home/username/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.master.Master-1-localhost.out
localhost: starting org.apache.spark.deploy.worker.Worker, logging to /home/sername/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.worker.Worker-1-localhost.out
[email protected].???.??: starting org.apache.spark.deploy.worker.Worker, logging to /home/username/spark-1.6.0-bin-hadoop2.6/logs/spark-username-org.apache.spark.deploy.worker.Worker-1-localhost.localdomain.out
also kein Fehler hier und es scheint, dass ein Master-Knoten ausgeführt wird, sowie zwei Worker-Knoten. Allerdings, wenn ich öffnen Sie die WebGUI an 192.168.???.??:8080, es listet nur ein Arbeiter - die lokale. Mein Problem ist ähnlich wie hier beschrieben: Spark-Cluster: Arbeitnehmer-info-anzeigen nicht auf web-Benutzeroberfläche aber Es ist nichts Los in meiner /etc/hosts-Datei. Allen, die es enthält, ist:
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
Was bin ich?
Beide Maschinen sind mit Fedora Workstation x86_64.
Sie könnte beginnen mit der Beschreibung Ihrer Netzwerk-Konfiguration und hinzufügen von Protokollen? Auch wenn Sie einige nützliche Informationen, fügen Sie einfach Bearbeiten der Frage.
OK, das problem ist also master-Konfiguration. Seit seiner
/etc/hosts
bietet nur den localhost-Konfiguration diese Informationen an die remote-Arbeiter. Es versucht, eine Verbindung zum master auf localhost (was ist sichtbar in seinen logs) und natürlich fehlschlägt.Sie haben entweder machen Sie Ihre master-erreichbar von der remote-Mitarbeiter und die Konfiguration zu aktualisieren oder Sie können versuchen, um alle erforderlichen ports über ssh.
Entweder confiure SPARK_MASTER_IP, so weist es auf einen Zugriff von einem Arbeiter oder bieten Eintrag in der /etc/hosts entspricht hostname und erreichbar (nicht localhost) IP. Dies sollte genug sein.
InformationsquelleAutor Krzysiek Setlak | 2016-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Im Grunde die Quelle der Probleme ist, dass die master-hostname löst die
localhost
. Es ist sichtbar sowohl in der Ausgabe der Konsole:wobei der Letzte Teil entspricht dem Hostnamen. Sie können sehen, dass das gleiche Verhalten in der master-log:
- und remote-worker Protokolle:
Es bedeutet, dass remote-Mitarbeiter versucht, auf ein master auf
localhost
und offensichtlich fehl. Selbst wenn Arbeiter war in der Lage, eine Verbindung zu dem master würde ich nicht in umgekehrter Richtung aus dem gleichen Grund.Einige Weg, um dieses problem zu lösen:
InformationsquelleAutor zero323
wie es scheint, Funke ist sehr wählerisch über die IP und Rechnernamen. also, wenn Sie beginnen Ihren master zu verwenden, wird Ihre Maschine-Namen registrieren spark master.
wenn, der name ist nicht erreichbar von Ihr Beschäftigten, wird es fast unmöglich sein, zu erreichen.
workaround ist, starten Sie Ihren Meister wie diese
dann, Sie werden in der Lage sein, um verbinden Sie Ihren Sklaven wie dieser
und dort gehen Sie!
SPARK_MASTER_IP
ist jetzt veraltet ist, sollte man mitSPARK_MASTER_HOST
statt.InformationsquelleAutor dsncode
Ich hatte ähnliches Problem wurde gelöst durch die Bereitstellung SPARK_MASTER_IP in $SPARK_HOME/conf/spark-env.sh. spark-env.sh im wesentlichen setzt eine Umgebungsvariable SPARK_MASTER_IP, welche Punkte an eine IP gebunden werden, es zu Meistern. Dann start-master.sh liest diese variable und bindet Master. Jetzt SPARK_MASTER_IP ist sichtbar außerhalb der box, wo Meister ausgeführt wird.
InformationsquelleAutor Salim