Ich baue gerade einen benutzerdefinierten Andock-Container aus einer einfachen Distribution mit Apache Zeppelin + Spark 2.x im Inneren.Wie entlarven Sie Spark Driver hinter dockerisiertem Apache Zeppelin?
Meine Spark-Jobs werden in einem Remote-Cluster ausgeführt, und ich verwende yarn-client
als Master.
Wenn ich ein Notebook laufen lasse und versuche, sc.version
zu drucken, bleibt das Programm stecken. Wenn ich an die Remote-Ressource-Manager gehe, hat eine Anwendung erstellt und akzeptiert, aber in den Protokollen kann ich lesen:
INFO yarn.ApplicationMaster: Waiting for Spark driver to be reachable
Mein Verständnis für die Situation ist, dass der Cluster nicht in der Lage ist, den Fahrer zu sprechen, in der Container, aber ich weiß nicht, wie ich dieses Problem lösen soll.
ich zur Zeit der folgenden Konfiguration verwenden:
spark.driver.port
SetPORT1
und Option-p PORT1:PORT1
an den Behälter geleitetspark.driver.host
Satz172.17.0.2
(ip des Behälters)SPARK_LOCAL_IP
Set172.17.0.2
(ip des Containers)spark.ui.port
aufPORT2
und Optioneingestelltan den Behälter geleitet
Ich habe das Gefühl, dass ich die SPARK_LOCAL_IP an den Host-IP ändern sollte, aber wenn ich dies tun, ist SparkUI nicht gestartet werden, bevor der Prozess einen Schritt zu blockieren.
Vielen Dank im Voraus für irgendwelche Ideen/Ratschläge!
Vielen Dank für Ihre Antwort, aber eigentlich, wenn ich 'spark.driver.host' gesetzt Um anders zu sein (die Host-IP-Adresse zum Beispiel), kann der Treiber in der ersten Stufe nicht gestartet werden ('java.net.BindException: angeforderte Adresse kann nicht zugeordnet werden: Dienst 'sparkDriver' ist fehlgeschlagen'). – ThR37