Alauda Build 的 Spark operator
Alauda Build 的 Spark operator 是一个 Kubernetes 原生的 operator,用于在 Kubernetes 上运行和管理 Apache Spark 应用。它基于开源的 Kubeflow Spark Operator 构建,使你能够通过 Kubernetes Custom Resource Definitions (CRDs) 声明式地提交、调度、监控和清理 Spark 工作负载——而无需自行运行 spark-submit 客户端或独立的 Spark 集群。
概述
该 operator 提供以下 CRD(API group sparkoperator.k8s.io):
- SparkApplication:定义一个单独的 Spark 应用(一个 driver 及其 executors)。该 operator 以 cluster mode 提交它,跟踪其生命周期直至完成,并回收其资源。
- ScheduledSparkApplication:按照 cron 调度运行一个
SparkApplication,并提供并发与运行历史控制。 - SparkConnect:管理一个长期运行的 Spark Connect server,用于交互式 / 远程 Spark 会话。
主要特性
- 声明式提交:将 Spark 作业作为 Kubernetes 资源提交;operator 会替你以 cluster mode 运行
spark-submit。 - 生命周期管理:跟踪 driver/executor 状态,暴露
applicationState,遵循配置的重启策略,并清理已完成的应用。 - 调度:通过
ScheduledSparkApplication实现 cron 风格的周期性作业。 - Admission webhook:对 Spark 资源进行变更与校验(volumes、affinity、security context 等)。
- 批调度器集成:可选通过 Volcano 或 Yunikorn 实现 gang scheduling。
- Metrics:为应用、executors 和提交延迟暴露 Prometheus metrics。
使用场景
- 批量数据处理:在 Kubernetes 上运行 ETL 和分析作业。
- 定时流水线:无需外部调度器即可运行周期性 Spark 作业。
- 分布式数据准备 / ML:大规模特征工程与训练数据准备。
- 交互式 Spark:通过 Spark Connect 进行远程 Spark 会话。
此版本包含 Apache Spark 4.0.1。有关 Spark 概念和 Kubernetes 相关细节,请参阅 Running Spark on Kubernetes。