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

时间:2019-04-25 20:38:51

标签: stream apache-flink checkpoint

我们每天在处理数据时遇到一两个CheckPoint故障。数据量很低,例如不到10k,我们的间隔设置为“ 2分钟”。 (处理速度非常慢的原因是我们需要将数据下沉到另一个API端点,而这在flink作业结束时需要花费一些时间来处理,所以时间就是将数据+接收到流到外部API端点。)

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

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

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

检查点失败: enter image description here

完成的检查点: enter image description here

子任务没有响应 enter image description here

谢谢

1 个答案:

答案 0 :(得分:0)

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

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

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

env.getCheckpointConfig().setCheckpointTimeout(n);

其中n以毫秒为单位。有关更多详细信息,请参见enabling and configuring checkpointing上的Flink文档部分。

相关问题