我在Spark 2.0.0 Standalone上运行PySpark作业。我的工作成功完成(如UI和输出文件所示),但是火花环境永远不会关闭,我的工作仍然有效。
我正在使用以下spark-submit语句:
./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
如何才能成功完成工作并彻底退出?我错过了什么吗?
答案 0 :(得分:1)
通常,优雅地停止spark应用程序的方法是在SparkContext对象上调用stop()。如果您正在使用SparkSession,您也可以在其上调用stop(),因为它所做的就是停止底层的SparkContext。
很可能sc.stop()或spark.stop()而不是exit()会修复它。