View a markdown version of this page

Kegagalan pos pemeriksaan untuk aplikasi Apache Beam - Layanan Terkelola untuk Apache Flink

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kegagalan pos pemeriksaan untuk aplikasi Apache Beam

Jika aplikasi Beam Anda dikonfigurasi dengan shutdown SourcesAfterIdleMs disetel ke 0ms, pos pemeriksaan dapat gagal dipicu karena tugas dalam status “SELESAI”. Bagian ini menjelaskan gejala dan resolusi untuk kondisi ini.

Gejala

Buka Layanan Terkelola untuk CloudWatch log aplikasi Apache Flink Anda dan periksa apakah pesan log berikut telah dicatat. Pesan log berikut menunjukkan bahwa pos pemeriksaan gagal dipicu karena beberapa tugas telah selesai.

{ "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" }

Ini juga dapat ditemukan di dasbor Flink di mana beberapa tugas telah memasuki status “SELESAI”, dan pos pemeriksaan tidak dimungkinkan lagi.

Tugas dalam keadaan “SELESAI”

Penyebab

shutdown SourcesAfterIdleMs adalah variabel konfigurasi Beam yang mematikan sumber yang telah menganggur selama waktu milidetik yang dikonfigurasi. Setelah sumber dimatikan, pos pemeriksaan tidak dimungkinkan lagi. Hal ini dapat menyebabkan kegagalan pos pemeriksaan.

Salah satu penyebab tugas memasuki status “SELESAI” adalah ketika shutdown SourcesAfterIdleMs diatur ke 0ms, yang berarti bahwa tugas yang menganggur akan segera dimatikan.

Solusi

Untuk mencegah tugas memasuki status “SELESAI” segera, setel shutdown SourcesAfterIdleMs ke Long.MAX _VALUE. Ini dapat dilakukan dengan dua cara:

  • Opsi 1: Jika konfigurasi balok Anda diatur di halaman konfigurasi aplikasi Managed Service for Apache Flink, maka Anda dapat menambahkan pasangan nilai kunci baru untuk mengatur SourcesAfteridleMs shutdpwn sebagai berikut:

    Setel shutdown ke SourcesAfterIdleMs _VALUE Long.MAX
  • Opsi 2: Jika konfigurasi balok Anda diatur dalam file JAR Anda, maka Anda dapat mengatur shutdown SourcesAfterIdleMs sebagai berikut:

    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