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.
Échec de point de contrôle pour l’application Apache Beam
Si votre application Beam est configurée avec une valeur shutdownSourcesAfterIdleMs
Symptôme
Accédez aux CloudWatch journaux de votre application Managed Service for Apache Flink et vérifiez si le message de journal suivant a été enregistré. Le message de journal suivant indique que le point de contrôle n’a pas pu être déclenché, car certaines tâches sont terminées.
{ "locationInformation": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator.onTriggerFailure(CheckpointCoordinator.java:888)", "logger": "org.apache.flink.runtime.checkpoint.CheckpointCoordinator", "message": "Failed to trigger checkpoint for job
your job ID
since some tasks of jobyour job ID
has been finished, abort the checkpoint Failure reason: Not all required tasks are currently running.", "threadName": "Checkpoint Timer", "applicationARN":your application ARN
, "applicationVersionId": "5", "messageSchemaVersion": "1", "messageType": "INFO" }
Cela se trouve également sur le tableau de bord de Flink, où certaines tâches sont entrées dans l'état « FINISHED » et où le point de contrôle n'est plus possible.
Cause
shutdownSourcesAfterIdleMs est une variable de configuration Beam qui arrête les sources qui sont restées inactives pendant la durée configurée de millisecondes. Une fois qu’une source a été fermée, le point de contrôle n’est plus possible. Cela pourrait entraîner un échec du point de contrôle
L'une des causes pour lesquelles les tâches entrent dans l'état FINISHED « » shutdownSourcesAfter IdleMs est lorsqu'elle est définie sur 0 ms, ce qui signifie que les tâches inactives seront immédiatement arrêtées.
Solution
Pour empêcher les tâches de passer immédiatement à l'état FINISHED « », définissez shutdownSourcesAfter IdleMs ce paramètre sur Long. MAX_VALUE. Vous pouvez effectuer cette opération de deux façons :
-
Option 1 : Si la configuration de votre faisceau est définie sur la page de configuration de votre application Managed Service for Apache Flink, vous pouvez ajouter une nouvelle paire clé-valeur pour définir shutdpwnSourcesAfteridle Ms comme suit :
-
Option 2 : Si la configuration de votre faisceau est définie dans votre JAR fichier, vous pouvez la définir shutdownSourcesAfter IdleMs comme suit :
FlinkPipelineOptions options = PipelineOptionsFactory.create().as(FlinkPipelineOptions.class); // Initialize Beam Options object options.setShutdownSourcesAfterIdleMs(Long.MAX_VALUE); // set shutdownSourcesAfterIdleMs to Long.MAX_VALUE options.setRunner(FlinkRunner.class); Pipeline p = Pipeline.create(options); // attach specified options to Beam pipeline