使用 SparkApplications
创建新的 SparkApplication
可以使用 `kubectl apply -f
删除 SparkApplication
可以使用 `kubectl delete
更新 SparkApplication
可以使用 `kubectl apply -f
检查 SparkApplication
可以使用 `kubectl describe sparkapplications
配置应用程序自动重启和失败处理
Operator 支持使用可选字段 `.spec.restartPolicy` 配置自动应用程序重启,其中包含可配置的 `RestartPolicy`。以下是 `RestartPolicy` 示例:
restartPolicy:
type: OnFailure
onFailureRetries: 3
onFailureRetryInterval: 10
onSubmissionFailureRetries: 5
onSubmissionFailureRetryInterval: 20
有效的 restartPolicy 类型包括 `Never`、`OnFailure` 和 `Always`。应用程序终止后,Operator 根据其终止状态和规范中的 `RestartPolicy` 判断应用程序是否需要重启。如果应用程序需要重启,Operator 会通过提交新的运行来重启它。对于 `OnFailure`,Operator 进一步支持通过 `onFailureRetries` 和 `onSubmissionFailureRetries` 字段设置重试次数限制。此外,如果提交重试次数未达到上限,Operator 会使用线性回退策略重试提交应用程序,回退间隔由 `onFailureRetryInterval` 和 `onSubmissionFailureRetryInterval` 指定,这两个字段对于 `OnFailure` 和 `Always` `RestartPolicy` 都是必需的。如果旧的资源(如 driver pod、UI Service/Ingress 等)仍然存在,在提交新运行之前会被删除,并且由提交客户端创建新的 driver pod,因此 driver 会被有效地重启。
设置 SparkApplication 的 TTL
`SparkApplication` API 的 `v1beta2` 版本开始支持 `SparkApplication` 的 TTL,通过一个新的可选字段 `.spec.timeToLiveSeconds` 实现。如果设置了该字段,它定义了 SparkApplication 终止后存活的时间(以秒为单位)。如果当前时间超过 SparkApplication 终止后的 `.spec.timeToLiveSeconds`,`SparkApplication` 对象将被垃圾回收。以下示例说明了如何使用此字段:
spec:
timeToLiveSeconds: 3600
请注意,此功能要求启用 informer 缓存重新同步,该功能默认启用,重新同步间隔为 30 秒。您可以通过设置标志 `-resync-interval=