KubernetesClientApplication¶
KubernetesClientApplication is a SparkApplication (Apache Spark) in Spark on Kubernetes in cluster deploy mode.
Creating Instance¶
KubernetesClientApplication takes no arguments to be created.
KubernetesClientApplication is created when:
SparkSubmitis requested to launch a Spark application (for kubernetes in cluster deploy mode)
Starting Spark Application¶
start(
args: Array[String],
conf: SparkConf): Unit
start is part of the SparkApplication (Apache Spark) abstraction.
start parses the command-line arguments (args) and runs.
run¶
run(
clientArguments: ClientArguments,
sparkConf: SparkConf): Unit
run generates a custom Spark Application ID of the format:
spark-[randomUUID-without-dashes]
run creates a KubernetesDriverConf (with the given ClientArguments, SparkConf and the custom Spark Application ID).
run removes the k8s:// prefix from the spark.master configuration property (which has already been validated by SparkSubmit itself).
run creates a LoggingPodStatusWatcherImpl (with the KubernetesDriverConf).
run creates a KubernetesClient (with the master URL, the namespace, and others).
In the end, run creates a Client (with the KubernetesDriverConf, a new KubernetesDriverBuilder, the KubernetesClient, and the LoggingPodStatusWatcherImpl) and requests it to run.