作业引擎版本升级

Flink作为当前最活跃的流计算引擎之一,版本更新速度相对较快。及时升级作业到新版本,可以使用新版本的功能和特性。本文将为您介绍如何升级实时计算Flink版作业的引擎版本。

注意事项

实时计算Flink版引擎发布前,会进行丰富的兼容性测试,原则上同一大版本下的小版本间升级是兼容的,大版本间升级不保证兼容。引擎版本详情和作业快照(Savepoint)在Flink版本之间的兼容性详情请参见引擎版本号及其含义Compatibility Table

切换作业版本时,需注意:

  • 小版本升级时State兼容,可使用版本切换之前的系统检查点或作业快照。例如,vvr-4.0.15-flink-1.13切换至vvr-4.0.18-flink-1.13。

  • 大版本切换时State不兼容,需无状态重启。例如,vvr-4.0.15-flink-1.13切换至vvr-6.0.2-flink-1.15。

  • SQL或DataStream作业中的Flink相关依赖版本需要与作业选中的Flink版本保持一致。

  • 社区从Flink 1.13.0版本开始,默认的SQL Planner使用了阿里巴巴贡献给开源社区的BlinkPlanner ,和之前的版本存在部分差异,差异详情请参见 Apache Flink 1.13.0 发布公告。因此请注意从社区Flink 1.13.0之前的版本,迁移至VVR 4.0(基于社区Flink 1.13.0版本)及以上版本的实时计算Flink版时,可能涉及部分语法和API不兼容的问题。

升级流程

步骤一:备份作业状态

您可以在运维中心 > 作业运维页面,单击目标作业,在作业详情中的状态集管理页签查看作业状态集,详情请参见查看状态生成总览

  • 如果您的作业属于有状态计算,那么在升级版本时,首要考虑的是状态能否复用。

    升级前请先手动生成一个作业快照,以便升级出现异常时可以快速回滚业务。具体操作请参见手动创建作业快照

    重要
    • 原则上同一大版本下的小版本间升级兼容,大版本间升级不保证兼容。如果兼容,则新版本的引擎可以读取旧版本引擎生成的作业快照,反之并不保证。

    • 从VVR 6.x版本起,系统支持原生格式和标准格式两种作业快照格式。前者生成速度更快,后者兼容性更好。因此,如果希望将作业的引擎版本升级至同一大版本下的更高小版本,建议在作业快照生成时选择原生格式;如果希望将作业的引擎版本升级至更高的大版本,建议选择标准格式。

  • 如果您的作业是无状态的,可以直接进入下一步骤,进行作业版本切换。

步骤二:切换作业版本

在进行版本切换时,建议您选择稳定版(STABLE)或推荐版本(RECOMMENDED)。这些版本修复了其他版本的已知缺陷和相关问题,除了可以使用最新的功能,还提供了更强的稳定性保证。

SQL

  1. 进入目标作业。

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击左侧导航栏的数据开发 > ETL,并打开目标作业草稿。

  2. 单击作业编辑区右侧的更多配置,在引擎版本切换作业版本后,单击右上方的部署

    image

  3. 运维中心 > 作业运维页面,单击目标作业名称,在部署详情页签的基础配置部分,检查新部署作业版本是否切换成功。

    image

  4. 重新启动作业,使部署生效。

DataStream

  1. 进入目标作业。

    1. 登录实时计算控制台,单击目标工作空间操作列下的控制台

    2. 单击左侧导航栏的运维中心 > 作业运维,并单击目标作业。

  2. 部署详情页签,单击基础配置模块右侧的编辑

  3. 引擎版本切换作业版本后,单击右上方的保存

    image

  4. 重新启动作业,使部署生效。

步骤三:作业数据验证

通常情况下,如果升级后作业可以正常启动并完成第一个系统检查点,可以视为升级初步成功。但仍然建议您观察一下业务数据的正确性,以确保升级结果的完整性。

当作业正常运行且验证数据正确性后,可以考虑手动删除升级之前的作业快照,具体操作请参见手动删除指定作业快照

升级失败回滚处理

如果在升级后发现作业无法启动或业务数据异常,建议您立即停止作业,将作业版本切换到升级前的版本,并通过升级前保存的作业快照恢复业务。同时,可以通过提交工单反馈相关问题。

如果您无法跟踪整个升级过程,建议配置作业失败告警,以便在发生异常时及时通知您,避免业务受损,具体操作请参见配置监控告警