Flink 報錯信息總結


簡介

記錄一些使用Flink SQL時遇到的報錯日志信息。

詳細:

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內存大小設置。

原因:一般就是設置的TaskManager內存太小導致。GC嚴重導致心跳超時。

解決:調大對應的TM內存值,flink-conf.yaml的配置: https://blog.csdn.net/ChinaPoison/article/details/112163548

寫在最后

不知不覺,在博客園的園齡剛好滿1年了,博客更的越來越少,上一次發博都是21年3月份了,為了一周年,發一發博客。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM