Errorei del checkpoint per l'applicazione Apache Beam - Servizio gestito 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 «FINITO». 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" }

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"

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

    shutdownSourcesAfterIdleMs Impostato su Long.max_value
  • 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