1.概述
以前遇到一个问题,这个问题是这样的,一个FLink job,然后部分是离线任务,数据读取完毕了,就结束了。然后发现就不做检查点了,当时没想明白,然后找到了一个老版本才出出现这样的问题。
参考:【Flink】Flink 部分算子是 FinishSHED 不做checnpoint
然后今天在一个博客中发现了原因,参考:面向流批一体的 Flink Runtime 新进展
在流模式下支持部分 task 结束后继续做 checkpoint 工作。
目前流程之下作业的结束可以分为两种情况:
-
如果 source 是有限的,作业最终会执行结束;
-
在无限 source 的情况下,用户可以通过 stop-with-savepoint–drain 命令来终止作业,并保留一个 savepoint。如果不指定 drain 参数,就不会进行 drain 操作,这种情况一般是为了保留 savepoint 来重启作业,不属于作业终止的