Amazon Managed Service for Apache Flink は、以前は Amazon Kinesis Data Analytics for Apache Flink と呼ばれていました。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
チェックポイントがタイムアウトしています。
アプリケーションが最適化されていなかったり、適切にプロビジョニングされていなかったりすると、チェックポイントが失敗する可能性があります。このセクションでは、この状態の症状とトラブルシューティングの手順について説明します。
症状
アプリケーションのチェックポイントに障害が発生すると、numberOfFailedCheckpoints
が 0 より大きくなります。
チェックポイントが失敗するのは、アプリケーションエラーなどの直接的な障害でも、アプリケーションリソース不足などの一時的な障害でもかまいません。アプリケーションログとメトリクスをチェックして、次の症状がないか調べてください。
コード内のエラー。
アプリケーションの依存サービスへのアクセス中にエラーが発生しました。
データのシリアル化中にエラーが発生しました。デフォルトのシリアライザーがアプリケーションデータをシリアル化できない場合、アプリケーションは失敗します。アプリケーションでカスタムシリアライザーを使用する方法については、Apache Flink ドキュメントの「データ型とシリアル化
」を参照してください。 メモリ不足のエラー
以下の指標が急上昇または着実に増加しています。
heapMemoryUtilization
oldGenerationGCTime
oldGenerationGCCount
lastCheckpointSize
lastCheckpointDuration
チェックポイントのモニタリングの詳細については、Apache Flink ドキュメントの「チェックポイントのモニタリング
原因と解決策
アプリケーションログのエラーメッセージには、直接的な障害の原因が示されます。一時的な障害には以下の原因が考えられます。
アプリケーションのKPUプロビジョニングが不十分です。アプリケーションのプロビジョニングを引き上げる方法については、 アプリケーションのスケーリングを実装する を参照してください。
アプリケーションの状態サイズが大きすぎる。
lastCheckpointSize
メトリクスを使用してアプリケーションの状態サイズを監視できます。アプリケーションの状態データはキー間で不均等に分散されます。アプリケーションで
KeyBy
オペレータを使用する場合は、受信データがキー間で均等に分割されていることを確認してください。ほとんどのデータが 1 つのキーに割り当てられていると、障害の原因となるボトルネックになります。アプリケーションにメモリやガベージコレクションのバックプレッシャが発生しています。アプリケーションの
heapMemoryUtilization
、oldGenerationGCTime
、oldGenerationGCCount
の値が急上昇していないか、または着実に増加していないかを監視します。