この記事は Distributed Computing Advent Calendar 2025 の8日目の記事です。
今回は、 Spark Operator特集・1日目「まずはSpark on K8sのおさらい」 - やっさんメモ の続きです。
- Spark on Kubernetes を理解する(理解編) ※前回
- Spark Kubernetes Operatorを動かしてみる(実践編) ※今回の記事
始める前に、想定読者と前提は以下の通りです。
- kubectl / Helm / Docker イメージ作成は一通り分かる人
- Spark自体の基本は理解している人(前回 12/1記事を参照)
- 利用環境は2025/12時点での最新
- Spark
- https://github.com/apache/spark (対象バージョン: v4.0.1)
- Kubernetes Operator
- https://github.com/kubeflow/spark-operator (対象バージョン: v2.4.0)
- https://github.com/apache/spark-kubernetes-operator (対象バージョン:v0.6.0)
- Spark
ハンズオンでは、最終的に以下が出来る事を目指します。
- k3dでマルチノードのSpark用Kubernetesクラスタを立てる
- Spark OperatorをHelmで入れる
- 独自のSparkアプリをPySparkとしてKubernetes上で実行する
今回の実践編は、以下の目次の流れで進めていきます。
- Spark の Kubernetes Operator のおさらい
- Spark on K8s視点での利点
- SparkのKubernetes Operator視点での利点
- SparkのKubernetes Operatorのこれまで(歴史の話)
- kubeflow/spark-operator(元祖Spark Operator)
- kubeflow/spark-operatorを利用する際の大事なポイント
- Spark Operator専用のCLI sparkctl がなくなっている(過去から使っている人向け)
- Sparkアプリの再起動を設定を入れる
- 実行が終わったSparkApplicationを自動削除する設定を入れる
- S3を利用する場合の導入先に注意
- .spec.sparkConf と .spec.sparkConfigMap は同居出来ないので注意
- kubeflow/spark-operator を使ってSparkアプリを起動する
- 手元で起動するKubernetesクラスタをk3dで用意する
- Spark Operatorのインストール
- 本番を想定した場合の大事なポイント
- ハンズオン向けの簡単な設定でインストール
- Sparkアプリの起動
- PySparkアプリの起動
- Spark Connectを使ってクラスタの外からPySparkアプリを実行してみる
- まとめ

