View a markdown version of this page

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 lo spegnimento SourcesAfterIdleMs impostato su 0 ms, è possibile che i checkpoint non vengano attivati perché le attività sono nello stato «FINITO». La presente sezione descrive le caratteristiche e le soluzioni relative a questa situazione.

Caratteristiche

Vai ai log dell'applicazione Managed Service for Apache Flink e controlla se il seguente messaggio di CloudWatch 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

shutdown SourcesAfterIdleMs è 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.

Una delle cause per cui le attività passano allo stato «FINITO» è quando l'arresto SourcesAfterIdleMs è 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 shutdown su _VALUE. SourcesAfterIdleMs Long.MAX 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 shutdpwn come segue: SourcesAfteridleMs

    Imposta shutdown su _VALUE SourcesAfterIdleMs Long.MAX
  • Opzione 2: se la configurazione di beam è impostata nel file JAR, puoi impostare lo SourcesAfterIdleMs shutdown 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