这是关于一个 flink 作业,它有一个简单的来源,可以从 url 获取数据,然后过滤数据,然后在处理函数中收集数据一段时间 (keyBy),最后处理地图中收集的数据。由于某些原因,即使 flink UI 显示它正在运行,作业也会在几天后停止运行。有什么方法可以知道为什么会有这样的行为,也有什么方法可以知道即使 UI 显示它正在运行,我也可以知道作业是否真的停止了。
附言我怎么知道工作已经停止了??答:它不执行它正在执行的任务。 我检查了日志,但对我理解问题没有多大帮助。
答案 0 :(得分:0)
听起来作业管理器和任务管理器仍在运行,因为至少正在传递心跳消息。
有许多指标可以说明正在发生的事情:
如果作业正在使用事件时间,则可能是空闲源导致水印不再前进。通过查看源实例中的 numRecordsOutPerSecond 和当前水印,您应该能够在指标中看到这一点。
如果您正在阅读 Kafka(或 Kinesis),请查看 records-lag-max(或 millisBehindLatest)。
如果您启用了检查点,请查看它们是否仍然成功。