2016-12-16 6 views
0

Ich habe einen PySpark Job auf Spark 2.0.0 Standalone ausgeführt. Mein Job wird erfolgreich abgeschlossen (wie in der Benutzeroberfläche und der Ausgabedatei angegeben), aber der Funke-Kontext wird nie geschlossen und mein Job bleibt aktiv.Spark 2.0.0 Standalone PySpark Job hängt nach Abschluss

Ich verwende den folgenden Funken einreichen Aussage:

./bin/spark-submit --master ${sparkmaster} --executor-memory 16g --num-executors 45 --executor-cores 3 --verbose /home/spark_mr1mr2.py 

Hier ist das Ende meiner PySpark Skript:

.coalesce(1,shuffle=True).saveAsTextFile("mr2out"+os.environ.get("RUN_NAME")+"/", codec) 
exit() 

Und hier sind die letzten Log-Meldungen:

16/12/15 23:11:06 INFO BlockManagerInfo: Removed broadcast_0_piece0 on 192.168.14.250:33654 in memory (size: 20.1 KB, free: 8.4 GB) 
16/12/15 23:11:06 INFO ContextCleaner: Cleaned accumulator 0 

Was kann ich tun, um den Job erfolgreich abzuschließen und sauber zu beenden? Fehle ich etwas?

Antwort

1

Im Allgemeinen ist das Stoppen von Spark-Anwendungen das stopp() auf dem SparkContext-Objekt aufrufen. Wenn Sie SparkSession verwenden, können Sie auch stop() aufrufen, da nur der zugrunde liegende SparkContext gestoppt wird.

Also wahrscheinlich sc.stop() oder spark.stop() statt exit() wird es beheben.

+0

Danke. Ich konnte das noch nicht direkt testen. Ich denke, es funktioniert, aber ich werde die Antwort akzeptieren, wenn ich bestätigen kann, dass es mein Problem gelöst hat. –

+0

Es sieht so aus, als ob entweder eine Ausnahme ausgelöst wird oder der Aufruf von sc.stop() verhindert, dass der Job angehalten wird. –

Verwandte Themen