使用 SparkApplications

使用 SparkApplications

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

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

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

它还有用于指定统一容器镜像(用于驱动程序和执行器)和镜像拉取策略的字段,即 .spec.image.spec.imagePullPolicy。如果需要使用自定义初始化容器(在驱动程序和执行器 Pods 中)镜像,可以使用可选字段 .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

反馈

此页面有帮助吗?