Le service géré Amazon pour Apache Flink était auparavant connu sous le nom d’Amazon Kinesis Data Analytics pour Apache Flink.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Le délai du point de contrôle est expiré
Si votre application n’est pas optimisée ou correctement provisionnée, les points de contrôle peuvent échouer. Cette section décrit les symptômes et les étapes de résolution de ce problème.
Symptômes
Si les points de contrôle échouent pour votre application, le numberOfFailedCheckpoints
sera supérieur à zéro.
Les points de contrôle peuvent échouer soit en raison de d’échecs directs, telles que des erreurs d’application, soit en raison d’échecs temporaires, tels que l’épuisement des ressources de l’application. Vérifiez les journaux et les métriques de votre application pour détecter les symptômes suivants :
Des erreurs dans votre code.
Des erreurs lors de l’accès aux services dépendants de votre application.
Des erreurs lors de la sérialisation des données. Si le sérialiseur par défaut ne parvient pas à sérialiser les données de votre application, celle-ci échouera. Pour plus d'informations sur l'utilisation d'un sérialiseur personnalisé dans votre application, consultez la section Types de données et sérialisation dans la documentation
d'Apache Flink. Erreurs de mémoire insuffisante.
Des pics ou des augmentations constantes des métriques suivantes :
heapMemoryUtilization
oldGenerationGCTime
oldGenerationGCCount
lastCheckpointSize
lastCheckpointDuration
Pour plus d'informations sur la surveillance des points de contrôle, consultez la section Surveillance des points de contrôle dans la
Causes et solutions
Les messages d’erreur du journal de votre application indiquent la cause des échecs directs. Les échecs temporaires peuvent avoir les causes suivantes :
Le provisionnement en KPU de votre application est insuffisant. Pour obtenir des informations sur l’augmentation du provisionnement de l’application, consultez Mettre en œuvre le dimensionnement des applications.
La taille de l’état de votre application est trop grande. Vous pouvez surveiller la taille de l’état de votre application à l’aide de la métrique
lastCheckpointSize
.Les données d’état de votre application sont réparties de manière inégale entre les clés. Si votre application utilise l’opérateur
KeyBy
, assurez-vous que les données entrantes sont réparties de manière égale entre les clés. Si la plupart des données sont attribuées à une seule clé, cela crée un goulot d’étranglement, qui entraînera des échecs.Votre application est confrontée à une contre-pression liée à la mémoire ou au récupérateur de mémoire. Vérifiez s’il y a des pics ou des augmentations constantes des valeurs
heapMemoryUtilization
,oldGenerationGCTime
etoldGenerationGCCount
.