我正在使用Spark 2.4.5通过spark-submit命令在Kubernetes上运行Spark应用程序。该应用程序在尝试写入输出时失败,详见这里,可能是由于安全上下文设置不正确的问题。因此,我尝试设置一个安全上下文并运行应用程序。我创建了一个Pod模板,如这里所述,但我无法验证该Pod模板是否已正确设置(因为我找不到合适的示例),或者它是否可以从驱动程序和执行器Pod中访问(因为我在驱动程序或Kubernetes日志中找不到与模板相关的内容)。这是我用来设置安全上下文的Pod模板的内容。
这是我使用的命令。
我已经将Pod模板文件放置在挂载在/opt/spark/work-dir的持久卷中。我有以下几个问题: 任何帮助都将不胜感激。谢谢。
apiVersion: v1
kind: Pod
metadata:
name: spark-pod-template
spec:
securityContext:
runAsUser: 1000
这是我使用的命令。
<SPARK_PATH>/bin/spark-submit --master k8s://https://dssparkcluster-dns-fa326f6a.hcp.southcentralus.azmk8s.io:443 \
--deploy-mode cluster --name spark-pi3 --conf spark.executor.instances=2 \
--conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
--conf spark.kubernetes.container.image=docker.io/datamechanics/spark:2.4.5-hadoop-3.1.0-java-8-scala-2.11-python-3.7-dm14 \
--conf spark.kubernetes.driver.volumes.persistentVolumeClaim.azure-fileshare-pvc.options.claimName=azure-fileshare-pvc \
--conf spark.kubernetes.driver.volumes.persistentVolumeClaim.azure-fileshare-pvc.mount.path=/opt/spark/work-dir \
--conf spark.kubernetes.executor.volumes.persistentVolumeClaim.azure-fileshare-pvc.options.claimName=azure-fileshare-pvc \
--conf spark.kubernetes.executor.volumes.persistentVolumeClaim.azure-fileshare-pvc.mount.path=/opt/spark/work-dir \
--conf spark.kubernetes.driver.podTemplateFile=/opt/spark/work-dir/spark_pod_template.yml \
--conf spark.kubernetes.executor.podTemplateFile=/opt/spark/work-dir/spark_pod_template.yml \
--verbose /opt/spark/work-dir/wordcount2.py
我已经将Pod模板文件放置在挂载在/opt/spark/work-dir的持久卷中。我有以下几个问题: 任何帮助都将不胜感激。谢谢。