Flink作業提交錯誤,如何定位
1.在Flink作業管理頁面,將鼠標懸停到提交失敗的作業狀態上,查看失敗的簡要信息。
常見的失敗原因可能包括:
?CU資源不足:需擴容隊列。
?生成jar包失敗:檢查SQL語法及UDF等。
2.如果信息不足以定位或者是調用棧錯誤,可以進一步單擊作業名稱,進入到作業詳情頁面,選擇“提交日志”頁簽,查看作業提交日志。
Flink作業運行異常,如何定位
1.在“Flink作業”管理頁面,對應作業“操作”列單擊“編輯”按鈕,在作業運行界面確認作業是否勾選“保存作業日志”參數。
?是,則執行3。
?否,則運行日志不會轉儲OBS桶,需要先執行2保存作業運行日志。
2.在作業運行界面勾選“保存作業日志”,在“OBS桶”參數選擇存儲運行日志的OBS桶。單擊“啟動”重新運行作業。作業重新運行完成后再執行3及后續步驟。
3.在Flink作業列表單擊對應作業名稱,進入作業詳情頁面,選擇“運行日志”頁簽。
4.單擊OBS桶,獲取對應作業的完整運行日志。
5.下載最新“jobmanager.log”文件,搜索“RUNNING to FAILED”關鍵字,通過上下文的錯誤棧,確認失敗原因。
6.如果“jobmanager.log”文件中的信息不足以定位,可以在運行日志中找到對應的“taskmanager.log”日志,搜索“RUNNING to FAILED”關鍵字,確認失敗原因。
Flink作業重啟后,如何判斷是否可以從checkpoint直接恢復
Flink作業重啟后,可以從兩個角度判斷是否可以從checkpoint直接恢復:
- 調整或者增加優化參數、并行度,修改Flink SQL語句、Flink Jar作業等操作,無法從checkpoint直接恢復。
- 僅修改“單TM所占CU數”參數時,可以從checkpoint直接恢復。
如何處理作業的OBS Bucket沒有授權?
用戶在執行一個作業,提示OBS Bucket沒有授權時,用戶需要進行如下操作:
1.在“全局配置 ”>“服務授權”頁面配置“Tenant Administrator(全局服務)”權限。
2.單擊“作業管理”,找到操作的作業名稱。
3.單擊“操作”列表中的“編輯”,進入“作業編輯”頁面。
4.用戶需要在該作業的“作業編輯”頁面進行“運行參數配置”。
a.選擇“開啟Checkpoint”或“保存作業日志”。
b.選擇“OBS桶”。
c.單擊“OBS授權”。
DLI Flink作業提交運行后(已選擇保存作業日志到OBS桶),提交運行失敗的情形(例如:jar包沖突),有時日志不會寫到OBS桶中
DLI Flink作業提交或運行失敗時,對應生成的作業日志保存方式,包含以下三種情況:
- 提交失敗,只會在submit-client下生成提交日志。
- 運行失敗且在1分鐘內的日志,可以直接在管理控制臺頁面查看,具體如下:
在“作業管理”>“Flink作業”頁面,單擊對應的作業名稱,進入作業詳情頁面,單擊“運行日志”可以查看實時日志。
- 運行失敗且超過1分鐘(日志轉儲周期1分鐘),會在application_xx下生成運行日志。
另外,由于DLI服務端已經內置了Flink的依賴包,并且基于開源社區版本做了安全加固。為了避免依賴包兼容性問題或日志輸出及轉儲問題,打包時請注意排除以下文件:
- 系統內置的依賴包,或者在Maven或者Sbt構建工具中將scope設為provided
- 日志配置文件(例如l:“log4j.properties”或者“logback.xml”等)
- 日志輸出實現類JAR包(例如:log4j等)
在此基礎上,taskmanager.log會隨日志文件大小和時間滾動。
訪問FlinkUI/SparkUI頁面無法正常顯示怎么辦?
問題現象
訪問FlinkUI/SparkUI頁面無法正常顯示,打開頁面返回信息不全。
根因分析
根據分析發現隊列為按需隊列,運行作業的時候會重新創建集群,大概需要10分鐘左右才能完成集群創建。在集群創建完成之前,訪問FlinkUI會導致緩存空的projectID,從而導致無法訪問。出現該問題可能原因是由于集群未創建。
解決方案
建議將隊列更換為專屬隊列,空閑狀態下集群不會被釋放。或者提交作業等一段時間之后在查看FlinkUI。
Jobmanager與Taskmanager心跳超時,導致Flink作業異常怎么辦?
問題現象
Jobmanager與Taskmanager心跳超時,導致Flink作業異常。
異常信息

根因分析
1.檢查網絡是否發生閃斷,分析集群負載是否很高。
2.如果頻繁出現Full GC, 建議排查代碼,確認是否有內存泄漏。
Full GC

處理步驟
- 如果頻繁Full GC, 建議排查代碼,是否有內存泄漏。
- 增加單TM所占的資源。
- 聯系技術支持,修改集群心跳配置參數。
Flink jobmanager日志一直報Timeout expired while fetching topic metadata怎么辦?
1.首先測試地址連通性。
2.若果網絡不可達,需要先配置網絡連通。確保DLI 隊列與外部數據源的網絡連接性正常。