如何通过spark-submit为Kubernetes上的Spark Driver Pod设置RestartPolicy
解决Spark Driver Pod重启策略设置问题
直接通过Spark提供的专属Kubernetes配置参数来设置,而非仅依赖podTemplate,因为Spark会主动覆盖模板中的restartPolicy字段。具体操作如下:
- 使用
spark.kubernetes.driver.restartPolicy配置参数,在spark-submit命令中指定其值为Always,这是Spark官方针对Kubernetes环境Driver重启策略的专属配置项,优先级高于podTemplate中的设置。
示例spark-submit命令:
spark-submit \ --master k8s://https://<你的K8s API服务器地址> \ --deploy-mode cluster \ --name your-spark-streaming-app \ --class com.your.company.StreamingJob \ --conf spark.kubernetes.driver.restartPolicy=Always \ --conf spark.kubernetes.driver.podTemplateFile=file:///本地路径/driver-template.yaml \ --conf spark.executor.instances=4 \ local:///容器内路径/your-app.jar
- 调整你的podTemplate.yaml,移除
restartPolicy字段,保留其他需要的配置(比如自定义标签)即可:
apiVersion: v1 kind: Pod metadata: labels: my-label: driver-template-label-value spec: containers: - name: test-driver-container image: will-be-overwritten
说明:该配置参数要求Spark版本在3.1及以上,若使用更早版本,只能通过Kubernetes Deployment托管Driver Pod(但会脱离spark-submit原生管控,不推荐),优先建议升级Spark版本使用官方支持的配置方式。
内容的提问来源于stack exchange,提问作者Out_Of_Memory
相关产品推荐
相关产品推荐

