目标

提交任务到YARN运行
提交后不再跟踪任务进展,以便提交其他任务

环境

YARN 2.7.2
SPARK 2.4.5
miniconda python,位于 /opt/miniconda3/envs/pandas/bin/python

步骤

  1. conda activate pandas
  2. export PYSPARK_PYTHON=`which python`
  3. spark-submit --deploy-mode cluster --conf spark.yarn.submit.waitAppCompletion=false --py-files m1.py,m2.py main.py

注意每个节点要有相同的python包,在同一个目录中,这里设置了PYSPARK_PYTHON变量
示例中,提交的主程序是main.py,涉及的模块在同一个文件夹中,分别叫m1.py和m2.py,使用逗号分开
其中deploymode=cluster好像是默认的
waitAppCompletion默认是true,就会在bash中等待任务完成,并显示运行中print出来的内容
waitAppCompletion改成false,就会在提交后返回,可以继续提交其他任务

参考
SO关于提交后返回的回答
官网关于提交任务的说明,可以搜索waitAppCompletion