You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spark Kubernetes中spark-submit --archives未将Zip同步至Driver Pod问题

在Kubernetes集群模式下Spark Submit --archives参数问题分析与解决

核心问题:误用了spark.kubernetes.file.upload.path参数

你遇到的问题不是Bug,而是对spark.kubernetes.file.upload.path的作用理解有误:

  • 该参数指定的是Kubernetes集群内Driver Pod可访问的共享存储路径,而非提交命令的客户端本地路径。
  • 集群模式(cluster deploy mode)下,客户端仅负责提交任务,Driver Pod运行在K8s节点上,客户端本地的/tmp与Driver Pod的文件系统完全隔离,因此Driver无法读取客户端本地的文件。

正确配置方式

  1. 指定集群内共享存储路径
    你需要将spark.kubernetes.file.upload.path配置为K8s集群中客户端和Driver都能访问的共享存储路径,比如:

    • 使用PVC(持久化卷声明):先创建一个PVC,然后配置参数为spark.kubernetes.file.upload.path=pvc://<你的PVC名称>/upload
    • 使用分布式存储(如S3、HDFS):确保客户端和Spark镜像都具备存储访问权限,配置为spark.kubernetes.file.upload.path=s3a://<存储桶名称>/upload(S3示例)
  2. 调整后的提交命令示例

    ${SPARK_HOME}/bin/spark-submit \
      --name spark-pi \
      --master k8s://https://xyz.gr7.us-east-1.eks.amazonaws.com \
      --deploy-mode cluster \
      --class org.apache.spark.examples.SparkPi \
      --conf spark.executor.instances=2 \
      --conf spark.kubernetes.namespace=spark \
      --conf spark.kubernetes.authenticate.driver.serviceAccountName=spark \
      --conf spark.kubernetes.container.image=myrepo.local:5000/spark-py:v3.3.1-j14 \
      --conf spark.kubernetes.file.upload.path=pvc://spark-upload-pvc/upload \
      --archives data.zip \
      --verbose \
      local:///opt/spark/examples/jars/spark-examples_2.12–3.0.1.jar
    

验证步骤

  • 提交任务后,先检查共享存储路径下是否存在上传的data.zip文件
  • 进入Driver Pod,验证是否能访问该共享存储路径下的文件
  • 若使用PVC,确保Driver Pod的ServiceAccount有访问该PVC的权限

内容的提问来源于stack exchange,提问作者erpguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:10:49