Ich versuche, ein Hallo Welt Beispiel arbeiten mit Funken + Andockfenster, und hier ist mein Code.
%Vor% Wenn ich sbt run
starte, bekomme ich
Ich habe sowohl die Cluster-Benutzeroberfläche überprüft, in der ich drei Knoten mit jeweils 1,5 g Speicher habe, als auch die Benutzeroberfläche von nomenode, wo ich das gleiche sehe.
Die Docker-Protokolle zeigen keine Ausgabe von den Workern und die folgenden vom Master
%Vor%]
Das passiert ein paar Mal, und dann bricht das Programm ab und stirbt mit
%Vor% Wenn ich einen tcpdump über die docker0
-Schnittstelle gemacht habe und es so aussieht, als würden die Worker und die Master-Knoten sprechen.
Die Funkenkonsole funktioniert jedoch.
Wenn ich sc
als val sc = new SparkContext("local", "Generic", System.getenv("SPARK_HOME"))
einstelle, läuft das Programm
Ich war dort. Das Problem sieht so aus, als ob das AKKA Actor-Subsystem in Spark eine andere Schnittstelle als Spark auf docker0 bindet.
Während Ihre Master-IP aktiviert ist: spark://172.17.0.3:7077
Akka ist verbindlich für: akka.tcp://[email protected]:48085
Wenn Sie Master / Slaves Andock-Container sind, sollten sie über die Schnittstelle docker0 im Bereich 172.17.x.x kommunizieren.
Versuchen Sie, den Master und die Slaves mit der korrekten lokalen IP-Adresse zu versorgen, indem Sie die env config SPARK_LOCAL_IP
verwenden. Einzelheiten finden Sie in den Konfigurationsdokumenten .
In unserem Docker-Setup für Spark 0.9 verwenden wir diesen Befehl, um die Slaves zu starten:
%Vor%Dies stellt dem Arbeiter direkt die lokale IP zur Verfügung.
Für das Ausführen von Funken auf Docker ist es wichtig,
Ohne alle 3 Probleme zu behandeln, können Funken-Cluster-Teile (Master, Worker, Treiber) nicht kommunizieren. Sie können bei jedem Problem auf Ссылка genau nachlesen oder den Container verwenden Funken von Ссылка
Sie müssen die Firewall überprüfen, wenn Sie sich auf einem Windows-Host befinden, und sicherstellen, dass java.exe
auf das öffentliche Netzwerk zugreifen darf oder dockerNAT in private ändern darf. Im Allgemeinen muss sich der Worker mit dem Treiber (dem von Ihnen übergebenen Programm) verbinden können.
Tags und Links scala apache-spark