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 柯桂强 <gu...@perfma.com> on 2019/11/13 12:29:08 UTC

流处理任务失败该如何追回之前的数据

我现在有一个流处理任务失败了,并且保留了checkpoint或者savepoint,我希望从最后一次checkpoint恢复,但是任务使用的是事件时间,超过窗口的数据就会被丢弃,我想到一个方法是,重启之前的数据通过批处理完成然后跑流处理,想问问大家这个方案是否可行,但是感觉如何限定批处理的范围并且和之后的流处理完美拼接是一个比较难的问题

Re: 流处理任务失败该如何追回之前的数据

Posted by LakeShen <sh...@gmail.com>.
1. Checkpoint 的状态,默认停止后会自行删除,所以如果你重启, Checkpoint 的状态如果没有特殊指定保留,应该就不见了,你无法从
Checkpoint 的状态恢复。
2. 使用Savepoint 可以,启动的时候,记得指定状态恢复的目录
3. 你使用的是事件时间,时间的具体指来源于你的记录中的某个时间字段,所以即使你重启,不会影响窗口类操作。

Px New <15...@gmail.com> 于2020年1月9日周四 下午6:50写道:

> rollback 后
> taskManager 会去获取持久化存储的snapshot , Source 也会回放到 做CheckPoint 时的那个点上
> 不论你使用的是是什么时间吧 -
>
>
> Dian Fu <di...@gmail.com> 于2019年11月14日周四 下午1:14写道:
>
> > 如果使用的event
> > time,watermark是根据event计算出来的,和系统时间没有关系,所以从最后一次checkpoint恢复即可。为什么你会觉得有问题?
> >
> > > 在 2019年11月13日,下午8:29,柯桂强 <gu...@perfma.com> 写道:
> > >
> > >
> >
> 我现在有一个流处理任务失败了,并且保留了checkpoint或者savepoint,我希望从最后一次checkpoint恢复,但是任务使用的是事件时间,超过窗口的数据就会被丢弃,我想到一个方法是,重启之前的数据通过批处理完成然后跑流处理,想问问大家这个方案是否可行,但是感觉如何限定批处理的范围并且和之后的流处理完美拼接是一个比较难的问题
> >
> >
>

Re: 流处理任务失败该如何追回之前的数据

Posted by Px New <15...@gmail.com>.
rollback 后
taskManager 会去获取持久化存储的snapshot , Source 也会回放到 做CheckPoint 时的那个点上
不论你使用的是是什么时间吧 -


Dian Fu <di...@gmail.com> 于2019年11月14日周四 下午1:14写道:

> 如果使用的event
> time,watermark是根据event计算出来的,和系统时间没有关系,所以从最后一次checkpoint恢复即可。为什么你会觉得有问题?
>
> > 在 2019年11月13日,下午8:29,柯桂强 <gu...@perfma.com> 写道:
> >
> >
> 我现在有一个流处理任务失败了,并且保留了checkpoint或者savepoint,我希望从最后一次checkpoint恢复,但是任务使用的是事件时间,超过窗口的数据就会被丢弃,我想到一个方法是,重启之前的数据通过批处理完成然后跑流处理,想问问大家这个方案是否可行,但是感觉如何限定批处理的范围并且和之后的流处理完美拼接是一个比较难的问题
>
>

Re: 流处理任务失败该如何追回之前的数据

Posted by Dian Fu <di...@gmail.com>.
如果使用的event time,watermark是根据event计算出来的,和系统时间没有关系,所以从最后一次checkpoint恢复即可。为什么你会觉得有问题?

> 在 2019年11月13日,下午8:29,柯桂强 <gu...@perfma.com> 写道:
> 
> 我现在有一个流处理任务失败了,并且保留了checkpoint或者savepoint,我希望从最后一次checkpoint恢复,但是任务使用的是事件时间,超过窗口的数据就会被丢弃,我想到一个方法是,重启之前的数据通过批处理完成然后跑流处理,想问问大家这个方案是否可行,但是感觉如何限定批处理的范围并且和之后的流处理完美拼接是一个比较难的问题