Flink 报错信息总结
2021/8/21 23:06:10
本文主要是介绍Flink 报错信息总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
记录一些使用Flink SQL时遇到的报错日志信息。
一:Caused by: java.lang.Exception: Pod terminated, container termination statuses: [flink-task-manager(exitCode=239, reason=Error, message=null)]
详细:
Caused by: java.lang.Exception: Pod terminated, container termination statuses: [flink-task-manager(exitCode=239, reason=Error, message=null)] at org.apache.flink.runtime.resourcemanager.active.ActiveResourceManager.onWorkerTerminated(ActiveResourceManager.java:225) at org.apache.flink.kubernetes.KubernetesResourceManagerDriver.lambda$terminatedPodsInMainThread$3(KubernetesResourceManagerDriver.java:317) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRunAsync(AkkaRpcActor.java:440) at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:208) ... 20 more
原因:发生场景,通过FlinkSql进行Sink读取Apacha Doris数据,由于表数据过大,在处理时,会把该类型数据库的表整表拉到内存中,最后再Flink日志中发现报错原因是java堆溢出:SQLException: Java heap space。
解决:使用多分区方式,来启动多线程并发读取数据,分而治之避免OOM。
参考:
[https://ci.apache.org/projects/flink/flink-docs-release-1.13/zh/docs/connectors/table/jdbc/#scan-partition-column](Flink 文档)
二: Caused by: java.sql.SQLException: ORA-01555: snapshot too old: rollback segment number 1388 with name "_SYSSMU1388_388483514$" too small
原因:同样属于Oracle表太大,读取时间过大,出现了大长的事务,增加了镜像过期的几率。
解决:按照第一点,使用多分区读取处理,大大缩短处理时间。
三: Caused by: java.lang.Exception: Job leader for job id 00245259f6646acab992d28789b17184 lost leadership.
原因:集群网络不稳定,导致和zookeeper失联,暂时断开无法连接leadership。 如果 ZK 在一段时间内没有收到 Flink RM 的心跳 ,它会撤销领导权并通知。
查看TaskManager日志可能会获得这样的警告:WARN org.apache.flink.shaded.zookeeper3.org.apache.zookeeper.ClientCnxn - Client session timed out, have not heard from server in 40020ms for sessionid 0x404f9ca531a5d6f
zk在切换leader或者网络抖动、机器繁忙、zk集群短暂无响应,都会导致curator将状态置为suspended.,会触发SUSPENDED状态,这个状态,会导致lost the leadership错误,而遇到这个错误,k8s直接就重启程序。
解决:排查zookeeper是否稳定和TM内存大小设置。
四:Caused by: java.util.concurrent.TimeoutException: Heartbeat of TaskManager with id uits-test-flink-taskmanager-1-11 timed out.
原因:一般就是设置的TaskManager内存太小导致。GC严重导致心跳超时。
解决:调大对应的TM内存值,flink-conf.yaml的配置: https://blog.csdn.net/ChinaPoison/article/details/112163548
写在最后
不知不觉,在博客园的园龄刚好满1年了,博客更的越来越少,上一次发博都是21年3月份了,为了一周年,发一发博客。
这篇关于Flink 报错信息总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南