Waktu titik checkpointing - 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.

Waktu titik checkpointing

Jika aplikasi Anda tidak dioptimalkan atau disediakan dengan benar, titik pemeriksaan bisa gagal. Bagian ini menjelaskan gejala dan langkah pemecahan masalah untuk kondisi ini.

Gejala

Jika titik pemeriksaan gagal untuk aplikasi Anda, numberOfFailedCheckpoints akan lebih besar dari nol.

Titik pemeriksaan bisa gagal karena kegagalan langsung, seperti kesalahan aplikasi, atau karena kegagalan sementara, seperti kehabisan sumber daya aplikasi. Periksa log dan metrik aplikasi Anda untuk gejala berikut:

  • Kesalahan dalam kode Anda.

  • Kesalahan mengakses layanan dependen aplikasi Anda.

  • Kesalahan serialisasi data. Jika serializer default tidak dapat membuat serialisasi data aplikasi Anda, aplikasi akan gagal. Untuk informasi tentang menggunakan serializer kustom dalam aplikasi Anda, lihat Jenis Data dan Serialisasi di Dokumentasi Apache Flink.

  • Kesalahan Kehabisan Memori.

  • Lonjakan atau peningkatan stabil dalam metrik berikut:

    • heapMemoryUtilization

    • oldGenerationGCTime

    • oldGenerationGCCount

    • lastCheckpointSize

    • lastCheckpointDuration

Untuk informasi selengkapnya tentang pemantauan pos pemeriksaan, lihat Memantau Checkpointing di Dokumentasi Apache Flink.

Penyebab dan solusi

Pesan kesalahan log aplikasi Anda menunjukkan penyebab kegagalan langsung. Kegagalan sementara dapat disebabkan hal berikut:

  • Persediaan KPU aplikasi Anda tidak cukup. Untuk informasi tentang meningkatkan persediaan aplikasi Anda, lihat Penskalaan.

  • Ukuran status aplikasi Anda terlalu besar. Anda dapat memantau ukuran status aplikasi Anda menggunakan metrik lastCheckpointSize.

  • Data status aplikasi Anda tidak didistribusikan secara merata di antara kunci. Jika aplikasi Anda menggunakan operator KeyBy, pastikan data yang masuk dibagi rata di antara kunci. Jika sebagian besar data ditetapkan ke satu kunci, ini membuat hambatan yang menyebabkan kegagalan.

  • Aplikasi Anda mengalami tekanan balik memori atau pengumpulan sampah. Pantau heapMemoryUtilization, oldGenerationGCTime, dan oldGenerationGCCount aplikasi Anda untuk lonjakan atau nilai yang terus meningkat.