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

Amazon Managed Service untuk Apache Flink sebelumnya dikenal sebagai Amazon Kinesis Data Analytics 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 shutdownSourcesAfterIdleMsdisetel ke 0ms, pos pemeriksaan dapat gagal dipicu karena tugas berada dalam status FINISHED "”. 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 FINISHED "", dan pos pemeriksaan tidak dimungkinkan lagi.

Tugas dalam keadaan FINISHED ""

Penyebab

shutdownSourcesAfterIdleMs 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 "FINISHED" shutdownSourcesAfter IdleMs adalah ketika diatur ke 0ms, yang berarti bahwa tugas yang menganggur akan segera dimatikan.

Solusi

Untuk mencegah tugas memasuki status FINISHED "" segera, atur shutdownSourcesAfter IdleMs ke Panjang. 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 shutdpwnSourcesAfteridle Ms sebagai berikut:

    Setel shutdownSourcesAfter IdleMs ke Panjang. MAX_ VALUE
  • Opsi 2: Jika konfigurasi balok Anda diatur dalam JAR file Anda, maka Anda dapat mengatur shutdownSourcesAfter IdleMs 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