Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
檢查點逾時
如果應用程式未最佳化或正確佈建,檢查點可能會失敗。本節說明此狀況的徵狀和疑難排解步驟。
徵狀
如果應用程式的檢查點失敗,numberOfFailedCheckpoints
將會大於零。
檢查點可能會因為直接失敗 (例如應用程式錯誤) 或暫時性失敗 (例如應用程式資源不足) 而失敗。檢查應用程式日誌和指標是否有下列徵狀:
程式碼中有錯誤。
存取應用程式相依服務時發生錯誤。
序列化資料時發生錯誤。如果預設的序列化程式無法序列化應用程式資料,則應用程式將失敗。如需在應用程式中使用自訂序列化程式的詳細資訊,請參閱 Apache Flink 文件中的資料類型和序列化
。 記憶體不足錯誤。
以下指標急劇增加或穩定增加:
heapMemoryUtilization
oldGenerationGCTime
oldGenerationGCCount
lastCheckpointSize
lastCheckpointDuration
如需監視檢查點的詳細資訊,請參閱 Apache Flink 文件中的監視檢查點
原因和解決方案
您的應用程式日誌錯誤訊息會顯示直接失敗的原因。暫時性失敗可能有下列原因:
您的應用程式KPU佈建不足。如需增加應用程式佈建的相關資訊,請參閱實作應用程式擴展。
應用程式狀態大小太大。您可以使用
lastCheckpointSize
指標監控應用程式狀態大小。應用程式的狀態資料在索引鍵之間分配不平均。如果應用程式使用
KeyBy
運算子,請確保您的傳入資料在索引鍵之間已平均分割。如果將大部分資料指派給單一索引鍵,則會產生瓶頸,從而導致失敗。應用程式遇到記憶體背壓或垃圾回收背壓。監控應用程式的
heapMemoryUtilization
、oldGenerationGCTime
以及oldGenerationGCCount
,看是否有值在急劇增加或穩定增加。