This is not an officially supported Google product.
Project status: beta
Current API version: v1beta2
If you are currently using the v1beta1
version of the APIs in your manifests, please update them to use the v1beta2
version by changing apiVersion: "sparkoperator.k8s.io/<version>"
to apiVersion: "sparkoperator.k8s.io/v1beta2"
. You will also need to delete the previous
version of the CustomResourceDefinitions named sparkapplications.sparkoperator.k8s.io
and scheduledsparkapplications.sparkoperator.k8s.io
, and replace them with the v1beta2
version either by installing the latest version of the operator or by running kubectl create -f manifest/crds
.
Customization of Spark pods, e.g., mounting arbitrary volumes and setting pod affinity, is implemented using a Kubernetes Mutating Admission Webhook, which became beta in Kubernetes 1.9. The mutating admission webhook is disabled by default if you install the operator using the Helm chart. Check out the Quick Start Guide on how to enable the webhook.
subresource
support for CustomResourceDefinitions, which became beta in 1.13 and is enabled by default in 1.13 and higher.The easiest way to install the Kubernetes Operator for Apache Spark is to use the Helm chart.
$ helm repo add incubator https://charts.helm.sh/incubator --force-update
$ helm install incubator/sparkoperator --namespace spark-operator
This will install the Kubernetes Operator for Apache Spark into the namespace spark-operator
. The operator by default watches and handles SparkApplication
s in every namespaces. If you would like to limit the operator to watch and handle SparkApplication
s in a single namespace, e.g., default
instead, add the following option to the helm install
command:
--set sparkJobNamespace=default
For configuration options available in the Helm chart, please refer to Configuration.
The following table lists the most recent few versions of the operator.
Operator Version | API Version | Kubernetes Version | Base Spark Version | Operator Image Tag |
---|---|---|---|---|
latest (master HEAD) |
v1beta2 |
1.13+ | 3.0.0 |
latest |
v1beta2-1.2.0-3.0.0 |
v1beta2 |
1.13+ | 3.0.0 |
v1beta2-1.2.0-3.0.0 |
v1beta2-1.1.2-2.4.5 |
v1beta2 |
1.13+ | 2.4.5 |
v1beta2-1.1.2-2.4.5 |
v1beta2-1.0.1-2.4.4 |
v1beta2 |
1.13+ | 2.4.4 |
v1beta2-1.0.1-2.4.4 |
v1beta2-1.0.0-2.4.4 |
v1beta2 |
1.13+ | 2.4.4 |
v1beta2-1.0.0-2.4.4 |
v1beta1-0.9.0 |
v1beta1 |
1.13+ | 2.4.0 |
v2.4.0-v1beta1-0.9.0 |
When installing using the Helm chart, you can choose to use a specific image tag instead of the default one, using the following option:
--set operatorVersion=<operator image tag>
Get started quickly with the Kubernetes Operator for Apache Spark using the Quick Start Guide.
If you are running the Kubernetes Operator for Apache Spark on Google Kubernetes Engine and want to use Google Cloud Storage (GCS) and/or BigQuery for reading/writing data, also refer to the GCP guide.
For more information, check the Design, API Specification and detailed User Guide.
The Kubernetes Operator for Apache Spark aims to make specifying and running Spark applications as easy and idiomatic as running other workloads on Kubernetes. It uses Kubernetes custom resources for specifying, running, and surfacing status of Spark applications. For a complete reference of the custom resource definitions, please refer to the API Definition. For details on its design, please refer to the design doc. It requires Spark 2.3 and above that supports Kubernetes as a native scheduler backend.
The Kubernetes Operator for Apache Spark currently supports the following list of features:
spark-submit
on behalf of users for each SparkApplication
eligible for submission.SparkAppliation
objects with updated specification.sparkctl
.sparkctl
.Please check CONTRIBUTING.md and the Developer Guide out.