Flink Datastream API Batch模式报错Checkpointing is not allowed with sorted inputs
问题根因
这个错误触发是因为Flink BATCH模式下,keyBy的下游算子默认会启用排序输入优化,而排序输入的逻辑和检查点/恢复逻辑互斥,哪怕你显式关闭了检查点,只要触发了恢复相关的检查逻辑,就会抛出这个异常。
解决步骤
- 首先排查任务启动参数,移除所有和savepoint/检查点恢复相关的配置,包括
-s启动参数、execution.savepoint.path配置项,确保任务是全新启动,不触发任何恢复逻辑。 - 检查你使用的Flink版本,该异常是1.13.x早期版本的已知bug,版本低于1.13.6的话直接升级到1.13.6及以上的稳定版本即可修复。
- 如果暂时无法升级版本,可以在任务配置中添加如下配置,关闭BATCH模式下keyed shuffle的排序输入优化:
configuration.setBoolean("execution.batch.keyed-shuffle-sorted-input.enabled", false); - 补充添加显式Sink,你当前的拓扑没有显式定义Sink,仅在Process函数中写入数据库,可能导致Flink拓扑判断异常,可以添加一个
print()或者DiscardingSink作为末尾算子,确保拓扑结构完整。
内容的提问来源于stack exchange,提问作者jt97
相关产品推荐
相关产品推荐

