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 claylin <10...@qq.com.INVALID> on 2021/10/29 03:33:46 UTC

关于作业失败从checkpoint重启,触发了过期的窗口计算

作业失败后从checkpoint重启,重启后会触发之前已经过期的时间窗口计算,求问这个该怎么解决。我的运行环境是flink1.3/1.4+sql举例:作业每小时做一次checkpoint,状态设置了1小时过期,状态后端使用rocksdb,同时使用了一天的滚动时间窗口,然后今天15点30分重启,但是重启后会有昨天的窗口计算结果触发。
按理说不应该会触发已经过期的窗口计算,而且flink 1.3/1.4 下&nbsp;&nbsp;state.backend.rocksdb.timer-service.factory 这个配置默认是rocksdb, 也就是说rocksdb里面存储了状态的有效时间,
不管怎么样也不应该触发已经过期的窗口计算,
请问大家有没有遇到过这种问题,怎么解决。

Re: 关于作业失败从checkpoint重启,触发了过期的窗口计算

Posted by liwei li <hi...@gmail.com>.
我是指添加ContinuousProcessingTimeTrigger或者ContinuousEventTimeTrigger。
这个不见得能解决你当前的问题,只是每隔一段时间触发一下窗口计算,得到一个中间结果缓存起来,无需等窗口结束再计算总量。

claylin <10...@qq.com.invalid> 于2021年10月31日周日 下午4:33写道:

> 添加continue trigger怎么理解
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:
>                                                   "user-zh"
>                                                                     <
> hililiwei@gmail.com&gt;;
> 发送时间:&nbsp;2021年10月30日(星期六) 晚上10:58
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;Re: 关于作业失败从checkpoint重启,触发了过期的窗口计算
>
>
>
> 可以试试添加使用Continuou Trigger
>
> Yun Tang <myasuka@live.com&gt; 于2021年10月29日周五 下午5:56写道:
>
> &gt; Hi,
> &gt;
> &gt; 先问个版本问题,你的Flink版本是1.3 而不是1.13?
> &gt;
> &gt;
> &gt;
> Checkpoint里面会存储timer,所以重启之后会触发窗口的计算,但确实这种一天的窗口累计有点太多了,除非你的作业存在比较严重的反压,导致checkpoint内积攒了大量没有触发的timer。
> &gt;
> &gt; 祝好
> &gt; 唐云
> &gt;
> &gt; ________________________________
> &gt; From: claylin <1012539884@qq.com.INVALID&gt;
> &gt; Sent: Friday, October 29, 2021 11:33
> &gt; To: user-zh <user-zh@flink.apache.org&gt;
> &gt; Subject: 关于作业失败从checkpoint重启,触发了过期的窗口计算
> &gt;
> &gt;
> &gt;
> 作业失败后从checkpoint重启,重启后会触发之前已经过期的时间窗口计算,求问这个该怎么解决。我的运行环境是flink1.3/1.4+sql举例:作业每小时做一次checkpoint,状态设置了1小时过期,状态后端使用rocksdb,同时使用了一天的滚动时间窗口,然后今天15点30分重启,但是重启后会有昨天的窗口计算结果触发。
> &gt; 按理说不应该会触发已经过期的窗口计算,而且flink 1.3/1.4
> &gt; 下&amp;nbsp;&amp;nbsp;state.backend.rocksdb.timer-service.factory
> 这个配置默认是rocksdb,
> &gt; 也就是说rocksdb里面存储了状态的有效时间,
> &gt; 不管怎么样也不应该触发已经过期的窗口计算,
> &gt; 请问大家有没有遇到过这种问题,怎么解决。
> &gt;

回复: 关于作业失败从checkpoint重启,触发了过期的窗口计算

Posted by claylin <10...@qq.com.INVALID>.
添加continue trigger怎么理解




------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <hililiwei@gmail.com&gt;;
发送时间:&nbsp;2021年10月30日(星期六) 晚上10:58
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: 关于作业失败从checkpoint重启,触发了过期的窗口计算



可以试试添加使用Continuou Trigger

Yun Tang <myasuka@live.com&gt; 于2021年10月29日周五 下午5:56写道:

&gt; Hi,
&gt;
&gt; 先问个版本问题,你的Flink版本是1.3 而不是1.13?
&gt;
&gt;
&gt; Checkpoint里面会存储timer,所以重启之后会触发窗口的计算,但确实这种一天的窗口累计有点太多了,除非你的作业存在比较严重的反压,导致checkpoint内积攒了大量没有触发的timer。
&gt;
&gt; 祝好
&gt; 唐云
&gt;
&gt; ________________________________
&gt; From: claylin <1012539884@qq.com.INVALID&gt;
&gt; Sent: Friday, October 29, 2021 11:33
&gt; To: user-zh <user-zh@flink.apache.org&gt;
&gt; Subject: 关于作业失败从checkpoint重启,触发了过期的窗口计算
&gt;
&gt;
&gt; 作业失败后从checkpoint重启,重启后会触发之前已经过期的时间窗口计算,求问这个该怎么解决。我的运行环境是flink1.3/1.4+sql举例:作业每小时做一次checkpoint,状态设置了1小时过期,状态后端使用rocksdb,同时使用了一天的滚动时间窗口,然后今天15点30分重启,但是重启后会有昨天的窗口计算结果触发。
&gt; 按理说不应该会触发已经过期的窗口计算,而且flink 1.3/1.4
&gt; 下&amp;nbsp;&amp;nbsp;state.backend.rocksdb.timer-service.factory 这个配置默认是rocksdb,
&gt; 也就是说rocksdb里面存储了状态的有效时间,
&gt; 不管怎么样也不应该触发已经过期的窗口计算,
&gt; 请问大家有没有遇到过这种问题,怎么解决。
&gt;

Re: 关于作业失败从checkpoint重启,触发了过期的窗口计算

Posted by liwei li <hi...@gmail.com>.
可以试试添加使用Continuou Trigger

Yun Tang <my...@live.com> 于2021年10月29日周五 下午5:56写道:

> Hi,
>
> 先问个版本问题,你的Flink版本是1.3 而不是1.13?
>
>
> Checkpoint里面会存储timer,所以重启之后会触发窗口的计算,但确实这种一天的窗口累计有点太多了,除非你的作业存在比较严重的反压,导致checkpoint内积攒了大量没有触发的timer。
>
> 祝好
> 唐云
>
> ________________________________
> From: claylin <10...@qq.com.INVALID>
> Sent: Friday, October 29, 2021 11:33
> To: user-zh <us...@flink.apache.org>
> Subject: 关于作业失败从checkpoint重启,触发了过期的窗口计算
>
>
> 作业失败后从checkpoint重启,重启后会触发之前已经过期的时间窗口计算,求问这个该怎么解决。我的运行环境是flink1.3/1.4+sql举例:作业每小时做一次checkpoint,状态设置了1小时过期,状态后端使用rocksdb,同时使用了一天的滚动时间窗口,然后今天15点30分重启,但是重启后会有昨天的窗口计算结果触发。
> 按理说不应该会触发已经过期的窗口计算,而且flink 1.3/1.4
> 下&nbsp;&nbsp;state.backend.rocksdb.timer-service.factory 这个配置默认是rocksdb,
> 也就是说rocksdb里面存储了状态的有效时间,
> 不管怎么样也不应该触发已经过期的窗口计算,
> 请问大家有没有遇到过这种问题,怎么解决。
>

Re: 关于作业失败从checkpoint重启,触发了过期的窗口计算

Posted by Yun Tang <my...@live.com>.
Hi,

先问个版本问题,你的Flink版本是1.3 而不是1.13?

Checkpoint里面会存储timer,所以重启之后会触发窗口的计算,但确实这种一天的窗口累计有点太多了,除非你的作业存在比较严重的反压,导致checkpoint内积攒了大量没有触发的timer。

祝好
唐云

________________________________
From: claylin <10...@qq.com.INVALID>
Sent: Friday, October 29, 2021 11:33
To: user-zh <us...@flink.apache.org>
Subject: 关于作业失败从checkpoint重启,触发了过期的窗口计算

作业失败后从checkpoint重启,重启后会触发之前已经过期的时间窗口计算,求问这个该怎么解决。我的运行环境是flink1.3/1.4+sql举例:作业每小时做一次checkpoint,状态设置了1小时过期,状态后端使用rocksdb,同时使用了一天的滚动时间窗口,然后今天15点30分重启,但是重启后会有昨天的窗口计算结果触发。
按理说不应该会触发已经过期的窗口计算,而且flink 1.3/1.4 下&nbsp;&nbsp;state.backend.rocksdb.timer-service.factory 这个配置默认是rocksdb, 也就是说rocksdb里面存储了状态的有效时间,
不管怎么样也不应该触发已经过期的窗口计算,
请问大家有没有遇到过这种问题,怎么解决。