Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

submit spark application java.lang.ClassNotFoundException: org.apache.spark.deploy.k8s.features.VolcanoFeatureStep

未关闭
#669 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞
技术栈
java, kubernetes

调研方向

从 SparkApplication YAML 和针对 org.apache.spark.deploy.k8s.features.VolcanoFeatureStep 的 Java ClassNotFoundException 开始。检查该 feature step 是否可用于声明的 Spark 3.5.7 image,以及是否支持与 Volcano 相关的设置,然后使用提供的配置复现提交。应用程序提交时不再出现此类加载失败,即表示完成。

由索引模型根据 Issue 内容生成。

描述

type/bug
Affected Stackable version

spark operator version: 25.11.0

Affected Apache Spark-on-Kubernetes version

spark version: 3.5.7-stackable25.11.0

Current and expected behavior

提交spark任务的yaml如下
`apiVersion: spark.stackable.tech/v1alpha1
kind: SparkApplication
metadata:
name: spark-streaming
namespace: spark
spec:
sparkImage:
productVersion: 3.5.7
mode: cluster
mainClass: org.apache.spark.examples.SparkPi
mainApplicationFile: "local:///stackable/spark/examples/jars/spark-examples.jar"
args:
- "1000"
sparkConf:
spark.kubernetes.submission.waitAppCompletion: "false"
# 删除固定的 pod name,让 operator 管理
spark.kubernetes.driver.pod.name: "spark-streaming-driver"
spark.kubernetes.executor.podNamePrefix: "spark-streaming"

# --- Celeborn 配置 ---
spark.shuffle.manager: "org.apache.spark.shuffle.celeborn.SparkShuffleManager"
spark.celeborn.master.endpoints: "celeborn-master-0.celeborn-master-svc.spark.svc.cluster.local"
spark.celeborn.client.push.enabled: "true"
spark.celeborn.client.fetch.enabled: "true"

spark.kubernetes.scheduler.name: "volcano"
spark.kubernetes.driver.pod.featureSteps: "org.apache.spark.deploy.k8s.features.VolcanoFeatureStep"
spark.kubernetes.executor.pod.featureSteps: "org.apache.spark.deploy.k8s.features.VolcanoFeatureStep"
# --- 动态分配与资源 ---
spark.dynamicAllocation.enabled: "false"
spark.executor.instances: "2"
spark.executor.cores: "2"
spark.executor.memory: "1g"
spark.driver.cores: "1"
spark.driver.memory: "512m"

#在 Spark Conf 中也指定 SA,确保 Spark 内部客户端知道用哪个 SA
spark.kubernetes.driver.serviceAccountName: "spark-app-sa"
spark.kubernetes.executor.serviceAccountName: "spark-app-sa"

driver:
#使用 podOverrides 指定 K8s 原生的 serviceAccountName
podOverrides:
spec:
serviceAccountName: "spark-app-sa"
config:
resources:
cpu:
min: "1"
max: "2"
memory:
limit: "1Gi"

executor:
replicas: 1
podOverrides:
spec:
serviceAccountName: "spark-app-sa"
config:
resources:
cpu:
min: "1700m"
max: "3"
memory:
limit: "2Gi"
`
报错日志如下:
Image

Possible solution

No response

Additional context

No response

Environment

No response

Would you like to work on fixing this bug?

None

主要语言
Rust
星标
74
派生
5
平均合并
9 小时 55 分钟
30 天内合并 PR
16

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

stackabletech/spark-k8s-operator 的其他 Issue

查看 stackabletech/spark-k8s-operator 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。