flink sql作业读kafka流表去关联hive 维表时报错Caused by: java.util.concurrent.TimeoutException: Heartbeat of TaskManager with id XXX timed out.
这样的报错明面上看是TM的心跳连接 超时了,意味着无法启动TM。从flink 页面也能看出,作业是正常运行的,但是就是没有数据进来
但明显算子链有红色的,我的实际作业是用kafka流表去关联hive的维表,但hive的维表的数据量比较大,用的是lookup join ,这样意味着维表的数据都要加载到内存的。那就有可能是因为GC问题导致JM去连接TM的时候心跳超时。基于这点判断,我又去看了下TM的内存情况
堆内存和管理内存明显占用量大。
解决:我这里选择将资源调大,TM给的是20G的内存。同时基于kafka的原因,将并行度调整到3,目前作业是正常运行的了。