本文介紹資料攝入作業中的常見問題與解決方案。
快照階段執行Checkpoint時報錯,JobMananger記憶體不足
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題可能在使用任意Realtime ComputeVVR引擎版本的作業中出現。
異常表現
任務在全量快照階段頻繁異常重啟,查看JobManager日誌可見包含OutOfMemory記憶體不足錯誤棧。
在監控警示介面的資料攝入相關指標中,可以看到“Num of remaining SnapshotSplits”和“Num of processed SnapshotSplits”的總數非常多。

異常根因
在MySQL Source執行全量階段快照時,需要將全部分區的中繼資料資訊持久化儲存到狀態中。在作業資料量較大、或是分區大小較小時,JM會切分出產生大量需要讀取的分區,導致出現OutOfMemory的報錯。
解決方案
增大JobManager分配的記憶體資源數量。
調整運行參數
jobmanager.memory.heap.size和jobmanager.memory.off-heap.size,增大JobManager可使用的堆內及堆外記憶體。
作業增量階段從狀態恢複時失敗,JobMananger記憶體不足
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題影響使用Realtime ComputeVVR 11.1及更低版本的作業。
異常表現
任務已經進入增量階段,但在從狀態中恢複時JobManager報錯,日誌提示記憶體不足。
異常根因
Realtime ComputeVVR 11.1及更低版本引擎在全量切換到增量階段之後,有可能無法正確清理狀態中持久化儲存的表結構資訊,導致從Checkpoint恢複時記憶體不足。
解決方案
升級Realtime ComputeFlink引擎到VVR 11.2或更高版本。
快照即將結束時作業失敗,TaskManager記憶體不足
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題可能在使用任意Realtime ComputeVVR引擎版本的作業中出現。
異常表現
MySQL全量階段即將結束,只剩下少數幾個分區未處理時作業 OOM。
在TaskManager 的日誌中搜尋
using select statement關鍵字,發現最後一個無界查詢中包含大量資料。
異常根因
全量階段讀取的時間過長,因此最後一個分區積累了大量需要讀取的增量資料,導致消費該分區資料時記憶體不足。
解決方案
設定MySQL Source的
scan.incremental.snapshot.unbounded-chunk-first.enabled: true參數,並重新進行快照。
使用 pt-osc 等無鎖變更工具變更表結構後,無資料輸出
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題影響使用Realtime ComputeVVR 11.1及更低版本的作業。
異常表現
作業在執行無所表結構變更後持續運行,無異常重啟;
監控警示中的CurrentFetchTimeLag正常推進;
MySQL Source無資料輸出,CurrentEmitTimeLag也不再更新。
異常根因
早期版本不支援無鎖表結構變更工具產生的DDL變更事件。
解決方案
升級Realtime ComputeFlink引擎到11.2或更高版本;
設定MySQL Source的
scan.parse.online.schema.changes.enabled: true參數。
使用 pt-osc 等無鎖變更工具變更表結構後,作業Failover
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題影響使用Realtime ComputeVVR 11.1及更低版本的作業。
異常表現
作業在執行無所表結構變更後異常重啟,Transform運算元報錯列類型不符。
異常根因
Realtime ComputeFlink引擎VVR 11.1版本存在已知問題,在無鎖表結構變更的同時插入大量資料,有機率導致下發無法解析的事件。
解決方案
升級Realtime ComputeFlink引擎到11.2或更高版本,並從無鎖表結構變更前的快照重啟。
從表結構變更前的快照恢複作業報錯
影響面
此問題影響使用MySQL Source的Flink CDC資料攝入作業。
此問題影響使用Realtime ComputeVVR 11.1及更低版本的作業。
異常表現
從歷史快照有狀態重啟,且執行快照後又發生了表結構變更。
作業消費Binlog時拋出異常,提示表結構不匹配。
異常根因
Realtime ComputeFlink引擎VVR 11.1及更早版本不支援從表結構不相容的位點做有狀態啟動。
解決方案
升級Realtime ComputeFlink引擎到11.2或更高版本,即可從表結構變更前的快照重啟。