开发者学堂课程【《实时计算 Flink 版产品入门与实操》:如何迁移 Flink 任务到实时计算 Flink 版】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/334/detail/3742
如何迁移 Flink 任务到实时计算 Flink 版
内容简介:
1.如何迁移,从 flink run 到流计算平台。
2.多 jar,用户运行需要其他依赖的 jar。
3.main 有配置文件,用户通过配置文件定义作业。
4.state 复用,如何复用原来的 state,加速作业的恢复时间。
1.如何迁移
(1)线下的 flink run
/flink/bin/flink run -m yarn-cluster -d -yqu default
-ynm 'test' -s hdfs : /user/flink/ checkpoints/test
-yjm 1000m -ytm 2000m -yD yarn.appmaster.vcores=1
-yD yarn.containers.vcores=1 /worker_dir/lib/usercode. jar
问题点
·不同版本配置不同
·如何快速切换不同版本
·无法从之前的作业恢复
主要参数
·队列 default
·名字 test
·cp 地址: hdfs://user/flink/checkpoints/test-
·resource:内存和 cpu
·运行: mainJar mainArgs
代码:
/flink/bin/flink run -m yarn-cluster -d -yqu default
-ynm 'test' -s hdfs : / user /flink/ checkpoints/test
-yjm 1000m -ytm 2000m -yD yarn.appmaster.vcores=1
-yD yarn.containers.vcores=1 /worker_dir/lib/usercode.jar
Flink命令可以指定队列、名字、切换 cp 地址、资源设置。
(2)vvp ui 基础
主要参数
·通过 namespace 做到多用户的隔离
·作业名字
·Jar URI 设置作业的 mainJar
·main args 设置作业参数
·并行度
首先打开 flink ui 是一个基础设置,需要填作业名字、jar 地址、Entrypoint class、主要参数和并行度。除此之外用户还有一些高级参数。
①行为配置
行为配置有升级策略、初始状态、恢复策略。
升级策略指在作业修改配置且重启时 APPlicationManager 的行为:Stateless 是将停止当前作业,并使用最新配置启动一个新的作业,Stateful 是带状态升级,将对该作业做一个 Savepoint,并从该Savepoint用最新配置启动一个新的作业,None是配置变更文件时,不会对正在运行的 Flinnk Job 执行自动重启。
初始状态指作业的初始状态:
Cancelled 是将创建作业,但不会启动 FlinkJob,Running 是将在创建作业后立即启动 FlinkJOb。
恢复策略指当作业状态变为运行时,State 的恢复策略:
Latest Savepoint 是将从最新 Savepoint 文件恢复,Latest State 是将从最新的Savepoint 或 Checckpoint 中恢复,None 是不带 State 恢复作业。
②配置
可以加一些标签,这些标签你可以在类似的页面设置你的作业通过,标签设置可以标述这个作业属于哪个用户。
③Flink 配置
Flink 配置可以设置 Checkpoint 的执行时间间隔,两次 Checkpoint 之间的最短时间间隔和定义当作业无法再重启或暂停时 Checkpoint 是否保留和一些 Flink 重启策略配置。
也可以设置重启策略,尝试重启次数是 Flink 在宣告作业失败之前,如果通过检查点激活,则使用 Integer.MAX_VALUE,每次重启时间间隔是延迟重试意味着在执行失败后,重新执行不会立即开始,而只会在一定的延迟之后开始。
④其他配置
其他配置可以配置一些其他的配置。
⑤资源配置
资源配置可以设置 Task Managers 的数量、job 的 cpu 和内存和 Task Managers 的cpu 和内存。
⑥日志配置
如果想查看任意一个类的信息可以直接在日志配置中配置。
2.多 jar
①上传 jar
首先需要在资源管理界面上传所依赖的文件,上传这个包之后你的包就已经在管理下面。
②配置
需要点高级配置,在附加依赖上点击下拉框选择你需要的jar包并保存,此时你的包就已经加载进来了。
交完作业后出现问题,怎么查找问:
有两种方式,一种是通过 Flink UI,但由于作业没有运行起来是打不开 FlinkUI 的;第二种就是在运行事件中找到该作业,点击加号,查看运行出来的脚本,下拉寻找有红色标注的提示字段,可以知道运行不起来的原因。
3. 配置文件
不同用户通过配置文件的方式来来定义它的job和启动。
①上传文件
在资源管理中上传你的文件,接着在高级配置中选择你的依赖文件。
②代码中读取
在你的启动函数里面如果需要文件的话,你可以使用 yam 和 ask/asl 方式。
4.state 复用
如果发现作业有问题,肯定需要停下正在跑的文件,改完问题作业后需要重启,Flink 是有状态的,你可以对作业无缝恢复不需要其他操作。
①配置
首先你需要在行为配置下的恢复策略下选择 Latest Savepoint 或者 latest State,这时当你暂停作业再次点击启动就可以直接恢复,但注意不能停止作业。
②暂停作业
发现作业处于不正常的状态就可以点击暂停,修改成功之后可以直接点击启动,会自动恢复。
在作业快照下,点击 Flink Checkpoint 可以查看恢复信息
可以在 Lateost Restore 中找到地址,复制地址后直接使用。
③主动触发
还有一种情况,当前有作业在运行,想基于这个作业再运行一个作业。可以在作业快照-历史快照找到需要的作业进行复制,复制的作业包含了作业的所有设置信息可以直接启动。
在页面中你也可以一目了然你的作业信息。