本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
维护 Flink 应用程序
主题
Flink 应用程序通常设计为长时间运行,例如运行数周、数月甚至数年。与所有长期运行的服务一样,Flink 流式处理应用程序需要维护。这包括错误修复、改进与迁移到更高版本的 Flink 集群。
当 FlinkDeployment
和 FlinkSessionJob
资源的规范发生变化时,您需要升级正在运行的应用程序。为此,操作员停止正在运行的作业(除非已暂停),并使用最新的规范重新部署该作业,而对于有状态的应用程序,使用上次运行的状态。
用户可以通过 JobSpec
的 upgradeMode
设置来控制如何在有状态的应用程序停止和恢复时管理状态。
升级模式
可选介绍
- 无状态
-
无状态应用程序将从空白状态升级。
- 上一状态
-
在任一应用程序状态(即使是失败的作业)下快速升级都不需要正常运行的作业,因为它总是使用最后一次成功的检查点。如果 HA 元数据丢失,可能需要进行手动恢复。要限制在选取最新检查点时作业可能回退的时间,您可以配置
kubernetes.operator.job.upgrade.last-state.max.allowed.checkpoint.age
。如果检查点早于配置的值,则对于运行正常的作业,系统将获取其保存点。在会话模式下,不支持此功能。 - 保存点
-
使用保存点进行升级,以获得最大的安全性,并可用作备份/分叉点。升级过程中,系统将创建保存点。请注意,Flink 作业必须正在运行,才能创建保存点。如果作业处于不健康状态,则将使用最后一个检查点(除非 kubernetes.operator.job.upgrade)。 last-state-fallback.enabled 设置为 false)。如果最后一个检查点不可用,则作业升级将失败。