You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by 唐世伟 <st...@126.com> on 2023/02/23 03:14:41 UTC

flink taskmanger重启失败的问题

我们有一个flink任务,同时写10几张doris表,每次doris出问题的时候任务就挂,flink的重启策略没有效果。
flink的重启配置入下:
restart-strategy: failure-rate
restart-strategy.failure-rate.delay: 60 s
restart-strategy.failure-rate.failure-rate-interval: 10 min
restart-strategy.failure-rate.max-failures-per-interval: 3

这边看了一下任务日志逻辑,发现任务写doris失败的时候,进入了重启流程,然后尝试cancel其他的operator。而每次cancel operator的时候都会触发当前operator的checkpoint。但是由于存在其他大量写doris表的算子。在执行checkpoint都会尝试flush数据到doris,导致再次报错calcel失败。而每次失败都会计入尝试重启次数,最后导致超过重启上限次数,任务直接挂了。请问这个是不是不太合理?理论上说,执行失败就失败了,没必要计入重启失败次数。最后导致重启失败。这个有办法调整吗?

Re: flink taskmanger重启失败的问题

Posted by Weihua Hu <hu...@gmail.com>.
从 region 改为 full 会扩容单个 Task 故障的影响范围,可以参考社区文档:
https://nightlies.apache.org/flink/flink-docs-release-1.16/docs/ops/state/task_failure_recovery/

Best,
Weihua


On Fri, Feb 24, 2023 at 2:12 PM 唐世伟 <st...@126.com> wrote:

> 谢谢回复,我看日志已经超出来yarn保存的期限被删了。另外Failover从region改为full。是不是能避免这个问题啊?
>
> > 2023年2月23日 上午11:36,Weihua Hu <hu...@gmail.com> 写道:
> >
> > Hi,
> >
> > 在 Cancel 其他 task 时会先将 task 状态置为 cancelling,这时 task 失败是不会二次触发 Failover 的。
> > 可以检查下是不是作业划分了多个 region,多个 region 的异常是统一计数的。
> >
> > 或者可以贴一下日志吗?
> >
> >
> > Best,
> > Weihua
> >
> >
> > On Thu, Feb 23, 2023 at 11:16 AM 唐世伟 <st...@126.com> wrote:
> >
> >> 我们有一个flink任务,同时写10几张doris表,每次doris出问题的时候任务就挂,flink的重启策略没有效果。
> >> flink的重启配置入下:
> >> restart-strategy: failure-rate
> >> restart-strategy.failure-rate.delay: 60 s
> >> restart-strategy.failure-rate.failure-rate-interval: 10 min
> >> restart-strategy.failure-rate.max-failures-per-interval: 3
> >>
> >> 这边看了一下任务日志逻辑,发现任务写doris失败的时候,进入了重启流程,然后尝试cancel其他的operator。而每次cancel
> >>
> operator的时候都会触发当前operator的checkpoint。但是由于存在其他大量写doris表的算子。在执行checkpoint都会尝试flush数据到doris,导致再次报错calcel失败。而每次失败都会计入尝试重启次数,最后导致超过重启上限次数,任务直接挂了。请问这个是不是不太合理?理论上说,执行失败就失败了,没必要计入重启失败次数。最后导致重启失败。这个有办法调整吗?
>
>

Re: flink taskmanger重启失败的问题

Posted by 唐世伟 <st...@126.com>.
谢谢回复,我看日志已经超出来yarn保存的期限被删了。另外Failover从region改为full。是不是能避免这个问题啊?

> 2023年2月23日 上午11:36,Weihua Hu <hu...@gmail.com> 写道:
> 
> Hi,
> 
> 在 Cancel 其他 task 时会先将 task 状态置为 cancelling,这时 task 失败是不会二次触发 Failover 的。
> 可以检查下是不是作业划分了多个 region,多个 region 的异常是统一计数的。
> 
> 或者可以贴一下日志吗?
> 
> 
> Best,
> Weihua
> 
> 
> On Thu, Feb 23, 2023 at 11:16 AM 唐世伟 <st...@126.com> wrote:
> 
>> 我们有一个flink任务,同时写10几张doris表,每次doris出问题的时候任务就挂,flink的重启策略没有效果。
>> flink的重启配置入下:
>> restart-strategy: failure-rate
>> restart-strategy.failure-rate.delay: 60 s
>> restart-strategy.failure-rate.failure-rate-interval: 10 min
>> restart-strategy.failure-rate.max-failures-per-interval: 3
>> 
>> 这边看了一下任务日志逻辑,发现任务写doris失败的时候,进入了重启流程,然后尝试cancel其他的operator。而每次cancel
>> operator的时候都会触发当前operator的checkpoint。但是由于存在其他大量写doris表的算子。在执行checkpoint都会尝试flush数据到doris,导致再次报错calcel失败。而每次失败都会计入尝试重启次数,最后导致超过重启上限次数,任务直接挂了。请问这个是不是不太合理?理论上说,执行失败就失败了,没必要计入重启失败次数。最后导致重启失败。这个有办法调整吗?


Re: flink taskmanger重启失败的问题

Posted by Weihua Hu <hu...@gmail.com>.
Hi,

在 Cancel 其他 task 时会先将 task 状态置为 cancelling,这时 task 失败是不会二次触发 Failover 的。
可以检查下是不是作业划分了多个 region,多个 region 的异常是统一计数的。

或者可以贴一下日志吗?


Best,
Weihua


On Thu, Feb 23, 2023 at 11:16 AM 唐世伟 <st...@126.com> wrote:

> 我们有一个flink任务,同时写10几张doris表,每次doris出问题的时候任务就挂,flink的重启策略没有效果。
> flink的重启配置入下:
> restart-strategy: failure-rate
> restart-strategy.failure-rate.delay: 60 s
> restart-strategy.failure-rate.failure-rate-interval: 10 min
> restart-strategy.failure-rate.max-failures-per-interval: 3
>
> 这边看了一下任务日志逻辑,发现任务写doris失败的时候,进入了重启流程,然后尝试cancel其他的operator。而每次cancel
> operator的时候都会触发当前operator的checkpoint。但是由于存在其他大量写doris表的算子。在执行checkpoint都会尝试flush数据到doris,导致再次报错calcel失败。而每次失败都会计入尝试重启次数,最后导致超过重启上限次数,任务直接挂了。请问这个是不是不太合理?理论上说,执行失败就失败了,没必要计入重启失败次数。最后导致重启失败。这个有办法调整吗?