环境:
(1) flink1.13.3
(2) flink on yarn
(3) CheckpointingMode为EXACTLY_ONCE模式
1、 每次checkpoint成功完成才会向kafka提交offset,但是两次checkpoint期间的流数据仍然会被程序处理。 如果此时程序宕掉,则从最后一次成功的checkpoint处开始消费,因此最后一次成功checkpoint到程序宕掉期间的数据会被重复消费,需要sink端做幂等处理来保证整条链的EXACTLY_ONCE。
2、 在停止任务时进行savepoint可触发向kafka提交offset
使用flink stop -p [:targetDirectory] :jobId -yid :yarnAppId
需注意: 使用上述命令时yarn client机器必须配置在hosts里,不然无法使用,会报错,如下图。当然在程序run时如果分配到未在hosts里的机器就会报错,但是不影响运行。



