Hi bradyMk,
整体上有两种方法:
1. 任务被 Kill 掉后,拉起时,从checkpoint 恢复,这个就需要知道任务结束之前,最新一次的 checkpoint
信息,然后从这开始恢复。
Flink 任务 checkpoint 的路径是 checkpoint 根路径 + job_id 组成的路径,所以你可以从这个目录找到
chk-xx 最新的 checkpoint ,然后进行恢复即可。
当然,还有其他方法知道任务被kill 前,最新一次的 checkpoint 信息。你选择一种适合你的方式就行,然后做成自动化的,降低运维成本。
2. 任务被 kill 掉后,从 Savepoint 恢复,可以定时做一次 savepoint
,不过这种方法由于状态和当前时间有间隙,可能会导致数据重放,从而下游可能会有消息重复。
建议选择 1 来实现。
Best,
LakeShen
hailongwang <
[hidden email]> 于2020年11月3日周二 下午7:21写道:
> Hi bradyMk,
>
>
> 在 on yarn 的模式下,如果某个container 被kill 了,是会重新拉起的。
> 至于整个 job 被kill 了,这种情况应该是自己手动显示的去停止把?
> 最于重启的话,重启次数可以设置个非常大的数字(~无限重启),但是一旦 job 一直这么重启,我个人任务就算重新拉起也是没用的把?
> 这个时候应该结合平台的告警策略来进行人工干预了。
> Best,
> Hailong Wang
>
>
>
>
> 在 2020-11-03 09:32:50,"bradyMk" <
[hidden email]> 写道:
> >您好,你说的这个策略是失败重启策略,但是如果job在某些情况被kill掉,或者重启超过重启次数,任务也会退出;我主要是针对这种情况重启的
> >
> >
> >
> >-----
> >Best Wishes
> >--
> >Sent from:
http://apache-flink.147419.n8.nabble.com/>