Flink 检查点故障 - 检查点在 10 分钟后超时

Bri*_*n Z 5 stream checkpoint apache-flink

我们每天在处理数据的过程中都会遇到一两次检查点故障。数据量很小,比如不到10k,我们的间隔设置是“2分钟”。(处理速度非常慢的原因是我们需要将数据接收到另一个API端点,这在flink作业结束时需要一些时间来处理,所以时间是流数据+接收到外部API端点)。

根本问题是: 检查点在10分钟后超时,这是由于数据处理时间超过10分钟造成的,因此检查点超时。我们可能会增加并行度来加快处理速度,但是如果数据变大,我们必须再次增加并行度,所以不想使用这种方式。

建议的解决方案: 我看到有人建议在新旧检查点之间设置暂停,但我有一个问题是,如果我在那里设置暂停时间,新检查点会丢失暂停时间内的状态吗?

目的: 如何避免这个问题并记录正确的状态,不丢失任何数据?

检查点失败:

在此输入图像描述

已完成的检查点:

在此输入图像描述

子任务没有响应

在此输入图像描述

谢谢

Dav*_*son 0

您可以设置几个相关的配置变量——例如检查点间隔、检查点之间的暂停以及并发检查点的数量。这些设置的组合不会导致检查点跳过数据。

设置检查点之间的间隔意味着 Flink 不会启动新的检查点,直到上一个检查点完成(或失败)后经过一段时间 - 但这对超时没有影响。

听起来你应该延长超时时间,你可以这样做:

env.getCheckpointConfig().setCheckpointTimeout(n);
Run Code Online (Sandbox Code Playgroud)

其中n以毫秒为单位。有关更多详细信息,请参阅 Flink 文档中有关启用和配置检查点的部分。