如何迁移 Flink 任务到实时计算

阿里云云栖号
简介: 本文由阿里巴巴技术专家景丽宁(砚田)分享,主要介绍如何迁移Flink任务到实时计算 Flink 中来。

通常用户在线下主要使用 Flink run,这会造成一些问题,比如:同一个配置因版本而变化;无法快速切换不同版本;无法从之前的作业恢复。

那么如何从线下迁移到线上呢?本文将通过下面四部分来向大家介绍。

一、如何迁移:从 Flink run 到流计算平台

如下图的线下命令如何迁移到线上。首先打开 VVP UI,添加基础配置,主要包括:作业名称、Jar URI、一些主要参数和并行度。还可以点击高级配置,配置更多信息。

比如高级配置里的行为配置,分为三部分:升级策略、初始状态和恢复策略。升级策略一般选择Stateless,初始状态选择Running,恢复策略选择Latest State。

升级策略选择Stateless,表示针对已经在运行的作业,编辑并保存配置后,会直接把原作业停掉,然后重新启动一个更新的作业;选择Stateble,针对正在运行的作业做配置编辑并保存的话,作业会先做一次Savepoint,然后加载新的配置并使用该 Savepoint启动新的作业。
恢复策略选择LatestSavepoint,是指作业在暂停情况下,如果再启动,将使用最新的Savepoint启动。
上面介绍的是 Flink 配置中比较重要的部分,下面图片显示的是另外一部分可以设置Checkpoint间隔等的配置,接下来是资源配置。日志配置部分可以选择日志保存位置,方便日后如果作业出现问题,可以方便的排查问题。

Flink 作业配置完成并启动运行后,如果出现异常,可以通过运行事件查看运行情况和问题。也可以打开 Flink UI的Job Manager,查看日志情况。

二、多Jar情况下,用户如何添加其他依赖的Jar

一些用户有自定义依赖且无法通过 fat jar 解决问题。举个例子,A用户有自己的main Jar和一些其他的Jar,这些Jar的应用场景不一样,那么首先需要在资源管理页面上传Jar包,上传完成之后就可以在页面使用该文件。
上传后再到高级配置中,找到“额外依赖的Jar”,下拉并选择刚刚上传的Jar 包就可以了。

三、用户如何通过配置文件定义作业

在资源管理里上传文件,然后在高级配置里选添加依赖,选择需要的依赖。如果启动函数里,main class是需要读取某个文件,先通过依赖添加文件,然后再根据提示的方式读取文件。

以上两个方式是放置用户Jar的方式,jar 和其他文件都可以在这里存放。

四、如何复用原来的state加速作业恢复

如果在运行作业时发现问题,一般情况下是停下来然后找到问题修复后再重启。用户需要在创建的时候指定 Checkpoint 需要的 OSS。 如果开启了Checkpoint,后续作业就可以直接从Checkpoint中恢复。
首先确认高级配置中恢复策略选择LatestState或LatestSavepoint。在这个前提下,可以暂停作业(千万不要停止作业),暂停会触发Savepoint,当再次点击启动时,会从这次Savepoint点恢复。

打开 Flink UI ,然后点击作业快照,在作业快照中可以查看 Flink Checkpoint指标,里面会显示Restore的次数和最后一次Restore的地址等信息,可确定作业是从最新的 State 恢复。

当作业正在运行,想对当前作业进项拷贝,如何操作呢?在作业控制页面点击Checkpoint,找到历史快照并点击其对应的最右侧的“从该快照复制作业”,那么就完成了把当前作业复制的操作,复制内容包括正在运行作业的Jar 包配置等。点击启动后,可以从作业快照中查看到新作业是从上个作业最近的一次Savepoint中复制启动的。

作者:景丽宁(砚田)
原文链接
本文为阿里云原创内容,未经允许不得转载

阅读 258

阿里云栖号
汇集阿里技术精粹-yq.aliyun.com

阿里云官网内容平台!汇聚阿里云优质内容(入门、文档、案例、最佳实践、直播等)!如需转载或内容类合作,邮件yqgroup@service.aliyun.com 秒级回复!

24.7k 声望
10.9k 粉丝
0 条评论

阿里云官网内容平台!汇聚阿里云优质内容(入门、文档、案例、最佳实践、直播等)!如需转载或内容类合作,邮件yqgroup@service.aliyun.com 秒级回复!

24.7k 声望
10.9k 粉丝
宣传栏