我正在运行一个简单的Flink聚合作业,它消耗Kafka,并应用具有特定滑动间隔的多个窗口(1小时、2小时……长达24小时(,并在窗口上进行聚合。有时作业会重新启动,当它从最新的Kafka数据启动窗口时,我们会丢失数据。为了克服这个问题,我们启用了检查点,我看到检查点大小在增加(configs:HashMapStateBackend with Hdfs storage(。对于一个永远运行的Flink作业,检查点的最佳方法是什么?我们能控制检查点的大小吗?因为运行几天后检查点会很大??
尝试使用带有Hdfs存储的HashMapStateBackend启用检查点。
Flink窗口代码应该在窗口过期后清除状态。请注意,这是基于在事件时间模式下运行的工作流,并提供适当的水印。此外,如果您配置一个";最大延迟";则当窗口状态被移除时的实际墙时钟时间基于水印时间戳和该最大延迟。
另外,每个滑动窗口x每个唯一键都有窗口状态。因此,如果你有一个持续时间为24小时的1分钟滑动窗口,那么你就会有(1440 x#个唯一键(窗口,这可能会导致你所在州的大小爆炸。