Errorei del checkpoint per l'applicazione Apache Beam - Servizio gestito per Apache Flink

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'shutdownSourcesAfterIdleMsimpostazione impostata su 0ms, i checkpoint potrebbero non essere attivati perché le attività sono nello stato "». FINISHED La presente sezione descrive le caratteristiche e le soluzioni relative a questa situazione.

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 job your 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" }

Questo può essere trovato anche nella dashboard di Flink, dove alcune attività sono entrate nello stato "FINISHED" e il checkpoint non è più possibile.

Attività nello stato "" FINISHED

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à entrano nello stato "FINISHED" è 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 "FINISHED", impostate su Lungo. shutdownSourcesAfter IdleMs MAX_VALUE. 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 shutdpwnSourcesAfteridle Ms come segue:

    Impostato su shutdownSourcesAfter IdleMs Long. MAX_ VALUE
  • Opzione 2: Se la configurazione di beam è impostata nel JAR file, allora potete impostarla shutdownSourcesAfter IdleMs come segue:

    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