Il servizio gestito da Amazon per Apache Flink era precedentemente noto come Analisi dei dati Amazon Kinesis per Apache Flink.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Errorei del checkpoint per l'applicazione Apache Beam
Se l'applicazione Beam è configurata con l'shutdownSourcesAfterIdleMs
Caratteristiche
Vai ai CloudWatch log dell'applicazione Managed Service for Apache Flink e controlla se il seguente messaggio di registro è stato registrato. Il seguente messaggio di log indica che il checkpoint non è andato a buon fine, poiché alcune attività sono state completate.
{ "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" }
Ciò può accadere anche nella dashboard di Flink, dove alcune attività sono passate allo stato "FINITO" e il checkpoint non è più possibile.
![L'attività si trova nello stato "FINITO"](images/beam_checkpoint_failure.png)
Causa
shutdownSourcesAfterIdleMs è una variabile di configurazione di Beam che spegne le sorgenti che sono rimaste inattive per il tempo configurato di millisecondi. Il checkpoint non è più possibile quando una fonte viene chiusa. La conseguenza potrebbe essere un checkpoint non riuscito
Uno dei motivi per cui le attività passano allo stato «FINITO» è quando shutdownSourcesAfter IdleMs è impostato su 0 ms, il che significa che le attività inattive verranno chiuse immediatamente.
Soluzione
Per evitare che le attività entrino immediatamente nello stato «FINITO», imposta su Long.MAX_VALUE. shutdownSourcesAfter IdleMs Esistono due maniere per assicurarsene:
-
Opzione 1: se la configurazione di beam è impostata nella pagina di configurazione dell'applicazione Managed Service for Apache Flink, puoi aggiungere una nuova coppia di valori chiave per impostare Ms come segue: shutdpwnSourcesAfteridle
-
Opzione 2: se la configurazione di beam è impostata nel file JAR, puoi impostare come segue: shutdownSourcesAfter IdleMs
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