问题:
用flink消费kafka的时候有些数据一直消费不出来
原因:
流后面带了2个相同的算子
val result: DataStream[(String, String, String)] = source_total.map(x =>
//提取出字段信息
Udfs.extract_info(x)
).map(x =>
Udfs.sortAndFixInfo(x)
)
解决方法:
将代码改成这样,后面只跟一个算子,问题就解决了
val result: DataStream[(String, String, String)] = source_total.map(x => { //提取出字段信息 Udfs.sortAndFixInfo(Udfs.extract_info(x)) } )
总结:
之前看文章说flink 生成jobGraph的时候会将2个想同的算子合并在一起,不知是版本原因(flink1.8),还是其它原因数据就是会丢失,所以写代码的时候应该将2个相同的算子合并成一个