spark提交过程不会在作业完成后自动终止

lymgl2op  于 2021-05-24  发布在  Spark
关注(0)|答案(1)|浏览(444)

我正在提交一个pyspark作业,在yarn的客户机模式下使用spark提交。

spark-submit   \
          --name $APP_NAME \
          --master yarn \
          --deploy-mode client \
          --num-executors 16 \
          --executor-cores 1 \
          --driver-memory 6g \
          --executor-memory 2g \

          --py-files myfile.py
            --version 2.3

这项工作成功完成,我可以在Spark历史以及从Yarn验证。即使在作业完成之后,我仍然看到spark提交进程正在运行,并且它不会终止。
我想从调用submit作业的调用程序(jenkins使用publishoverssh插件)返回一个作业状态。有没有办法确保spark提交过程在完成作业后以正确的退出代码终止?
我尝试过停止spark上下文并将exit状态放在python脚本的末尾。这还是不行。

sc.stop()
sys.exit(0)

这种情况通常随机发生在长时间运行的作业中。我认为集群模式没有任何问题。

icomxhvb

icomxhvb1#

您可以编写unixshell脚本,然后可以通过$?

spark-submit   \
      --name $APP_NAME \
      --master yarn \
      --deploy-mode client \
      --num-executors 16 \
      --executor-cores 1 \
      --driver-memory 6g \
      --executor-memory 2g \

      --py-files myfile.py
        --version 2.3

然后可以检查状态并添加条件

if [ $? -eq 0 ];then
       echo 'Success'
    else
       'fail'
   fi

相关问题