Problèmes liés à l'application - Service géré pour Apache Flink

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.

Problèmes liés à l'application

Cette section contient des solutions aux erreurs que vous pourriez rencontrer avec votre application de service géré pour for Apache Flink.

L'application est bloquée dans un statut transitoire

Si votre application reste dans un état transitoire (STARTING,UPDATING, ouAUTOSCALING)STOPPING, vous pouvez arrêter votre application en utilisant l'StopApplicationaction dont le Force paramètre est défini sur. true Vous ne pouvez pas forcer l’arrêt d’une application lorsqu’elle est à l’état DELETING. Sinon, si l’application a l’état UPDATING ou AUTOSCALING, vous pouvez revenir à la version précédente en cours d’exécution. Lorsque vous annulez une application, elle charge les données d’état du dernier instantané réussi. Si l’application ne possède aucun instantané, le service géré pour Apache Flink rejette la demande de restauration. Pour plus d'informations sur l'annulation d'une application, consultez la section RollbackApplicationAction.

Note

L’arrêt forcé de votre application peut entraîner une perte ou une duplication des données. Pour éviter la perte de données ou le double traitement des données lors du redémarrage de l’application, nous vous recommandons d’enregistrer fréquemment des instantanés de votre application.

Les causes de blocage des applications peuvent être les suivantes :

  • L’état de l’application est trop important : si l’état de l’application est trop important ou trop persistant, l’application peut se bloquer lors d’une opération de point de contrôle ou d’instantané. Vérifiez les métriques lastCheckpointDuration et lastCheckpointSize de votre application pour détecter des valeurs en augmentation constante ou anormalement élevées.

  • Le code de l’application est trop volumineux : vérifiez que le fichier JAR de votre application est inférieur à 512 Mo. Les fichiers JAR de plus de 512 Mo ne sont pas pris en charge.

  • La création d’un instantané de l’application échoue : le service géré pour Apache Flink crée un instantané de l’application lors d’une demande UpdateApplication ou StopApplication. Le service utilise ensuite cet état d’instantané et restaure l’application à l’aide de la configuration mise à jour de l’application afin de fournir une sémantique de traitement unique. Si la création automatique d’instantané échoue, consultez La création d'un instantané échoue.

  • La restauration à partir d’un instantané échoue : si vous supprimez ou modifiez un opérateur dans une mise à jour d’application et que vous tentez de restaurer à partir d’un instantané, la restauration échouera par défaut si l’instantané contient les données d’état de l’opérateur manquant. De plus, l’application sera bloquée à l’état STOPPED ou UPDATING. Pour modifier ce comportement et permettre à la restauration de réussir, modifiez le AllowNonRestoredStateparamètre de l'application FlinkRunConfigurationsurtrue. Cela permettra à l’opération de reprise d’ignorer les données d’état qui ne peuvent pas être mises en correspondance avec le nouveau programme.

  • L’initialisation de l’application prend trop de temps : le service géré pour Apache Flink utilise un délai d’attente interne de 5 minutes (réglage modifiable) pour le démarrage d’une tâche Flink. Si votre tâche ne démarre pas dans ce délai, vous verrez le CloudWatch journal suivant :

    Flink job did not start within a total timeout of 5 minutes for application: %s under account: %s

    Si vous rencontrez l’erreur ci-dessus, cela signifie que vos opérations définies selon la méthode main de la tâche Flink prennent plus de 5 minutes, entraînant l’expiration du délai de création de la tâche Flink du côté du service géré pour Apache Flink. Nous vous suggérons de consulter les JobManagerjournaux Flink ainsi que le code de votre application pour voir si ce retard dans la main méthode est prévu. Si ce n’est pas le cas, vous devez prendre des mesures pour résoudre le problème afin que l’opération prenne moins de 5 minutes.

Vous pouvez vérifier l’état de votre application à l’aide des actions ListApplications ou DescribeApplication.

La création d'un instantané échoue

Le service géré pour Apache Flink ne peut pas prendre d’instantané dans les circonstances suivantes :

  • L’application a dépassé la limite d’instantané. La limite est de 1 000 instantanés. Pour plus d’informations, consultez Instantanés.

  • L’application n’est pas autorisée à accéder à sa source ou à son récepteur.

  • Le code de l’application ne fonctionne pas correctement.

  • L’application rencontre d’autres problèmes de configuration.

Si vous obtenez une exception lors de la création d’un instantané pendant la mise à jour ou l’arrêt de l’application, définissez la propriété SnapshotsEnabled de la ApplicationSnapshotConfiguration de votre application sur false et réessayez la demande.

Les instantanés peuvent échouer si les opérateurs de votre application ne sont pas correctement configurés. Pour obtenir des informations sur le réglage des performances des opérateurs, consultez Mise à l’échelle des opérateurs.

Une fois que l’application est revenue à un état sain, nous vous recommandons de définir la propriété SnapshotsEnabled de l’application sur true.

Impossible d'accéder aux ressources d'un VPC

Si votre application utilise un VPC exécuté sur Amazon VPC, procédez comme suit pour vérifier que votre application a accès à ses ressources :

  • Vérifiez vos CloudWatch journaux pour détecter l'erreur suivante. Cette erreur indique que votre application ne peut pas accéder aux ressources de votre VPC :

    org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

    Si cette erreur s’affiche, vérifiez que vos tables de routage sont correctement configurées et que les paramètres de connexion de vos connecteurs sont corrects.

    Pour plus d'informations sur la configuration et l'analyse CloudWatch des journaux, consultezJournalisation et surveillance.

Des données sont perdues lors de l'écriture dans un compartiment Amazon S3

Certaines pertes de données peuvent se produire lors de l’écriture d’un fichier de sortie dans un compartiment Amazon S3 à l’aide d’Apache Flink version 1.6.2. Nous vous recommandons d’utiliser la dernière version prise en charge d’Apache Flink lorsque vous utilisez Amazon S3 pour écrire un fichier de sortie directement. Pour écrire dans un compartiment Amazon S3 à l'aide d'Apache Flink 1.6.2, nous vous recommandons d'utiliser Firehose. Pour plus d'informations sur l'utilisation de Firehose avec Managed Service pour Apache Flink, consultez. Évier Firehose

L'application est en cours d'exécution mais ne traite pas les données

Vous pouvez vérifier l’état de votre application à l’aide des actions ListApplications ou DescribeApplication. Si votre application entre dans le RUNNING statut mais n'écrit pas de données dans votre récepteur, vous pouvez résoudre le problème en ajoutant un flux de CloudWatch journal Amazon à votre application. Pour plus d’informations, consultez Utilisation des options de CloudWatch journalisation des applications. Le flux de journaux contient des messages que vous pouvez utiliser pour résoudre les problèmes de l’application.

Snapshot, mise à jour de l'application ou erreur d'arrêt de l'application : InvalidApplicationConfigurationException

Une erreur similaire à la suivante peut se produire lors d’une opération d’instantané ou lors d’une opération de création d’un instantané, telle que la mise à jour ou l’arrêt d’une application :

An error occurred (InvalidApplicationConfigurationException) when calling the UpdateApplication operation: Failed to take snapshot for the application xxxx at this moment. The application is currently experiencing downtime. Please check the application's CloudWatch metrics or CloudWatch logs for any possible errors and retry the request. You can also retry the request after disabling the snapshots in the Managed Service for Apache Flink console or by updating the ApplicationSnapshotConfiguration through the AWS SDK

Cette erreur se produit lorsque l’application ne parvient pas à créer un instantané.

Si vous rencontrez cette erreur lors d’une opération d’instantané ou d’une opération de création d’un instantané, procédez comme suit :

  • Désactivez les instantanés pour votre application. Vous pouvez le faire soit dans la console Managed Service for Apache Flink, soit en utilisant le SnapshotsEnabledUpdate paramètre de l'UpdateApplicationaction.

  • Découvrez pourquoi les instantanés ne peuvent pas être créés. Pour plus d’informations, consultez L'application est bloquée dans un statut transitoire.

  • Réactivez les instantanés lorsque l’application revient à un état sain.

fichier java.nio. NoSuchFileException: /usr/local/openjdk-8/lib/security/cacerts

L’emplacement du truststore SSL a été mis à jour lors d’un déploiement précédent. Utilisez la valeur suivante pour le paramètre ssl.truststore.location à la place :

/usr/lib/jvm/java-11-amazon-corretto/lib/security/cacerts