一. 问题描述:
1. flink在指定kafka offset启动(重启)后,会尝试将从指定offset的数据到最新的数据全部加载至内存并行输出;
2. 若数据量过大,程序报错:Caused by: java.lang.OutOfMemoryError: Java heap space,内存不足,导致无法checkpoints,分区数据文件无法提交,程序最终失败!
二. 处理方案:
1. 数据量太大,flink处理不过来时。任务挂掉之后从最新位置开始读取数据就可以了。会导致丢失任务失败的间隔段。(丢失的数据可以从kafka手动恢复,过程较为麻烦)
2. 将指定的offset调大。