我正在运行一个简单的Flink聚合作业,它从Kafka消耗,并应用多个窗口(1小时、2小时hr...upto )和特定的滑动间隔,并在窗口上进行聚合。有时工作会重新启动,当它从最新的Kafka数据中启动窗口时,我们就会丢失数据。为了克服这一问题,我们启用了检查点,并且我看到检查点的大小正在增加( HashMapStateBackend具有Hdfs存储)。对于一个永久运行的Flink作业来说,什么是最好的检查方法?我们能控制检查点的大小吗?几天后它会很大吗?
尝试启用带有Hdfs存储的HashMapStateBackend检查指向。
发布于 2022-11-03 17:11:27
Flink窗口代码应在窗口过期后清除状态。请注意,这是基于您的工作流运行在事件时模式,并提供适当的水印。另外,如果您配置了“最大延迟时间”,则删除窗口状态时的实际壁时钟时间是基于水印时间戳和最大延迟时间的。
另外,对于每个滑动窗口x每个唯一键,都有窗口状态。因此,如果你有一个24小时持续时间为1分钟的滑动窗口,那么你就会有(1440 x#的唯一键)窗口,这可能会导致你状态的大小爆炸。
https://stackoverflow.com/questions/74299773
复制相似问题