使用 SparkApplications

使用 SparkApplications

操作员运行在 Kubernetes 的 SparkApplication 自定义资源类型对象中指定的 Spark 应用程序。使用 SparkApplication 的最常见方式是将 SparkApplication 规范存储在 YAML 文件中,并使用 kubectl 命令或 sparkctl 命令来操作 SparkApplication。操作员自动将 SparkApplication 中配置的应用程序提交到 Kubernetes 集群上运行,并使用 SparkApplication 来收集并向用户展示驱动程序和执行器的状态。

与所有其他 Kubernetes API 对象一样,SparkApplication 需要 apiVersionkindmetadata 字段。有关使用清单的常规信息,请参阅使用 kubectl 进行对象管理

SparkApplication 还需要一个 .spec 部分。此部分包含用于指定应用程序各个方面的字段,包括其类型(ScalaJavaPythonR)、部署模式(clusterclient)、主应用程序资源 URI(例如,应用程序 jar 的 URI)、主类、参数等。还可以通过可选字段 .spec.nodeSelector 支持节点选择器。

它还包含用于指定统一容器镜像(供驱动程序和执行器使用)和镜像拉取策略的字段,即 .spec.image.spec.imagePullPolicy。如果需要使用自定义的初始化容器(在驱动程序和执行器 Pod 中)镜像,可以使用可选字段 .spec.initContainerImage 来指定。如果设置,.spec.initContainerImage 会覆盖 .spec.image 作为初始化容器镜像。否则,将使用由 .spec.image 指定的镜像作为初始化容器。如果 .spec.image.spec.initContainerImage 都未设置,则无效。

下面是一个示例,显示了 SparkApplication 规范的一部分

apiVersion: sparkoperator.k8s.io/v1beta2
kind: SparkApplication
metadata:
  name: spark-pi
  namespace: default
spec:
  type: Scala
  mode: cluster
  image: spark:3.5.1
  mainClass: org.apache.spark.examples.SparkPi
  mainApplicationFile: local:///opt/spark/examples/jars/spark-examples_2.12-3.5.1.jar

反馈

此页面有帮助吗?


上次修改于 2024年6月22日: Add docs for spark-operator (#3767) (b622672)