2016-12-16 37 views
0

我正在Spark 2.0.0 Standalone上運行PySpark作業。我的工作成功完成(如用戶界面和輸出文件所示),但火花上下文永遠不會關閉,並且我的工作保持活躍狀態​​。Spark 2.0.0獨立PySpark作業完成後掛起

我用下面的火花提交聲明:

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

這裏是我的PySpark腳本的末尾:

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

這裏是最後的日誌消息:

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 

如何才能成功完成工作並完全退出?我錯過了什麼嗎?

回答

1

一般來說,正常停止spark應用程序的方法是調用SparkContext對象上的stop()。如果你使用的是SparkSession,你也可以調用stop(),因爲它所做的只是停止底層的SparkContext。

很可能sc.stop()或spark.stop()而不是exit()將修復它。

+0

謝謝。我還沒有能夠直接測試。我認爲它正在工作,但是當我能確認它解決了我的問題時我會接受答案。 –

+0

它看起來像引發異常或調用sc.stop()將阻止作業掛起。 –