Amazon Managed Service für Apache Flink war zuvor als Amazon Kinesis Data Analytics für Apache Flink bekannt.
Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Checkpoint-Fehler für Apache-Beam-Anwendung
Wenn Ihre Beam-Anwendung auf 0 ms shutdownSourcesAfterIdleMs
Symptom
Rufen Sie die CloudWatch Anwendungsprotokolle Ihres Managed Service for Apache Flink auf und überprüfen Sie, ob die folgende Protokollmeldung protokolliert wurde. Die folgende Protokollmeldung weist darauf hin, dass der Checkpoint nicht ausgelöst werden konnte, da einige Aufgaben abgeschlossen wurden.
{ "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" }
Dies ist auch im Flink-Dashboard zu finden, wo einige Aufgaben den Status "FINISHED" erreicht haben und Checkpointing nicht mehr möglich ist.
Ursache
shutdownSourcesAfterIdleMs ist eine Beam-Konfigurationsvariable, die Quellen herunterfährt, die für die konfigurierte Zeit von Millisekunden inaktiv waren. Sobald eine Quelle heruntergefahren wurde, ist Checkpointing nicht mehr möglich. Dies könnte zu einem Checkpoint-Fehler
Eine der Ursachen dafür, dass Aufgaben in den Zustand "FINISHED" wechseln, ist, wenn sie auf 0 ms gesetzt shutdownSourcesAfter IdleMs ist, was bedeutet, dass Aufgaben, die sich im Leerlauf befinden, sofort heruntergefahren werden.
Lösung
Um zu verhindern, dass Aufgaben sofort in den Status "FINISHED" wechseln, setzen Sie shutdownSourcesAfter IdleMs den Wert auf Lang. MAX_VALUE. Es gibt zwei Methoden dafür:
-
Option 1: Wenn Ihre Beam-Konfiguration auf der Konfigurationsseite Ihrer Managed Service for Apache Flink-Anwendung festgelegt ist, können Sie ein neues Schlüsselwertpaar hinzufügen, um shutdpwnSourcesAfteridle Ms wie folgt festzulegen:
-
Option 2: Wenn Ihre Strahlkonfiguration in Ihrer JAR Datei festgelegt ist, können Sie sie shutdownSourcesAfter IdleMs wie folgt einstellen:
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