Kubernetes中的Spark作业停留在RUNNING状态

时间:2019-09-16 21:51:43

标签: apache-spark kubernetes

我正在本地运行(Docker桌面)的Kubernetes中提交Spark作业。我可以提交作业,并在屏幕上查看其最终输出。

但是,即使已完成,驱动程序和执行程序窗格仍处于RUNNING状态。

docs中所述,用于将Spark作业提交到kubernetes的基本映像是Spark随附的映像。

这是我的spark-submit命令的样子:

~/spark-2.4.3-bin-hadoop2.7/bin/spark-submit \
    --master k8s://https://kubernetes.docker.internal:6443 \
    --deploy-mode cluster \
    --name my-spark-job \
    --conf spark.kubernetes.container.image=my-spark-job \
    --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
    --conf spark.kubernetes.submission.waitAppCompletion=false \
    local:///opt/spark/work-dir/my-spark-job.py

这是kubectl get pods返回的结果:

NAME                                READY   STATUS    RESTARTS   AGE
my-spark-job-1568669908677-driver   1/1     Running   0          11m
my-spark-job-1568669908677-exec-1   1/1     Running   0          10m
my-spark-job-1568669908677-exec-2   1/1     Running   0          10m

1 个答案:

答案 0 :(得分:3)

弄清楚了。我忘记了stop Spark上下文。我的脚本现在看起来像这样,完成后,驱动程序进入Completed状态,并且驱动程序被删除。

sc = SparkContext()

sqlContext = SQLContext(sc)

# code

sc.stop()