全部产品
Search
文档中心

实时计算Flink版:作业引擎版本升级

更新时间:Dec 10, 2024

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不兼容的问题。

升级流程

步骤一:备份作业并部署新作业

为了确保作业运行的稳定性,建议通过克隆创建一个完全相同的新作业,并在新作业上进行作业引擎版本升级。

SQL

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

  2. 备份SQL老作业。

    1. 数据开发 > ETL页面,单击打开目标作业草稿。

    2. 单击作业名称上方的另存为

      image

    3. 填写文件名称并选择存储位置后,单击保存

  3. 新作业切换引擎新版本。

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

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

      image

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

      image

DataStream

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

  2. 备份DataStream老作业,新作业选择引擎新版本。

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

    1. 运维中心 > 作业运维页面,单击打开目标作业。

    2. 单击页面右上角的克隆

      image

    3. 更新部署名称后选择引擎版本,选择为新版本。

  3. 单击部署

步骤二:老作业备份作业状态

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

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

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

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

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

  • 如果您的作业是无状态的,可以直接进入下一步。

(可选)步骤三:停止老作业

运维中心 > 作业运维面,单击老作业操作列下的停止。操作详情请参见作业停止

如果下游写入幂等或者业务上能接受重复数据,可以考虑新老作业同时运行。

步骤四:启动新作业

  • 如果您的作业是有状态的:在有状态启动中选择从指定状态恢复,选择老作业创建的作业快照。

  • 如果您的作业是无状态的,可以直接选择无状态启动新作业。

作业启动步骤详情请参见作业启动

步骤五:观察线上情况并删除老作业

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

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

升级失败回滚处理

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

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