Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pembatalan pekerjaan EMR Tanpa Server dengan masa tenggang
Dalam sistem pemrosesan data, penghentian mendadak dapat menyebabkan pemborosan sumber daya, operasi yang tidak lengkap, dan potensi inkonsistensi data. Amazon EMR Tanpa Server memungkinkan Anda menentukan masa tenggang saat membatalkan pekerjaan berjalan. Fitur ini memungkinkan waktu untuk pembersihan yang tepat dan penyelesaian pekerjaan yang sedang berlangsung sebelum pemutusan hubungan kerja.
Saat membatalkan pekerjaan, Anda dapat menentukan masa tenggang (dalam detik) menggunakan parameter di shutdownGracePeriodInSeconds
mana pekerjaan dapat melakukan operasi pembersihan sebelum penghentian akhir. Perilaku dan pengaturan default bervariasi antara pekerjaan batch dan streaming.
Masa Tenggang Untuk pekerjaan batch
Untuk pekerjaan batch, EMR Tanpa Server memungkinkan Anda menerapkan operasi pembersihan khusus yang dijalankan selama masa tenggang. Anda dapat mendaftarkan operasi pembersihan ini sebagai bagian dari hook shutdown JVM dalam kode aplikasi Anda.
Perilaku default
Perilaku default untuk shutdown adalah tidak memiliki masa tenggang. Ini terdiri dari dua tindakan berikut:
Pengakhiran segera
Sumber daya segera dirilis
Opsi konfigurasi
Anda dapat menentukan pengaturan yang menghasilkan shutdown yang anggun:
Rentang yang Valid untuk Masa tenggang Shutdown: 15-1800 detik (opsional)
Pengakhiran segera (tanpa masa tenggang): 0 detik
Aktifkan shutdown yang anggun
Untuk menerapkan shutdown yang anggun untuk pekerjaan batch, ikuti langkah-langkah berikut:
-
Tambahkan shutdown hook dalam kode aplikasi Anda yang berisi logika shutdown kustom.
-
Tentukan masa tenggang saat membatalkan pekerjaan untuk memberikan waktu bagi kait yang ditambahkan di atas untuk dieksekusi
Contoh
# Default (immediate termination) aws emr-serverless cancel-job-run \ --application-id
APPLICATION_ID
\ --job-run-idJOB_RUN_ID
# With 5-minute grace period aws emr-serverless cancel-job-run \ --application-idAPPLICATION_ID
\ --job-run-idJOB_RUN_ID
\ --shutdown-grace-period-in-seconds 300
Masa Tenggang Untuk Pekerjaan Streaming
Dalam Spark Structured Streaming, di mana perhitungan melibatkan membaca dari atau menulis ke sumber data eksternal, shutdown tiba-tiba dapat menyebabkan hasil yang tidak diinginkan. Streaming pekerjaan memproses data dalam batch mikro, dan mengganggu operasi ini di tengah jalan dapat menghasilkan pemrosesan duplikat dalam upaya berikutnya. Ini terjadi ketika pos pemeriksaan terbaru dari batch mikro sebelumnya tidak ditulis, menyebabkan data yang sama diproses lagi ketika pekerjaan streaming dimulai ulang. Pemrosesan duplikat semacam itu tidak hanya menyia-nyiakan sumber daya komputasi tetapi juga dapat memengaruhi operasi bisnis, sehingga penting untuk menghindari penutupan mendadak.
EMR Tanpa Server menyediakan dukungan bawaan untuk shutdown yang anggun melalui pendengar kueri streaming. Ini memastikan penyelesaian yang tepat dari batch mikro yang sedang berlangsung sebelum pemutusan hubungan kerja. Layanan ini secara otomatis mengelola shutdown yang anggun antara batch mikro untuk aplikasi streaming, memastikan bahwa batch mikro saat ini menyelesaikan pemrosesan, pos pemeriksaan ditulis dengan benar, dan konteks streaming dihentikan dengan bersih tanpa menelan data baru selama proses shutdown.
Perilaku default
Masa tenggang 120 detik diaktifkan secara default.
Pendengar kueri streaming bawaan mengelola shutdown yang anggun.
Opsi konfigurasi
Rentang yang Valid untuk Masa tenggang Shutdown: 15-1800 detik (opsional)
Pengakhiran Segera: 0 detik
Aktifkan Shutdown Anggun
Untuk menerapkan shutdown yang anggun untuk pekerjaan streaming:
Tentukan masa tenggang saat membatalkan pekerjaan untuk memberikan waktu bagi batch mikro yang sedang berlangsung untuk diselesaikan.
Contoh
# Default graceful shutdown (120 seconds) aws emr-serverless cancel-job-run \ --application-id
APPLICATION_ID
\ --job-run-idJOB_RUN_ID
# Custom grace period (e.g. 300 seconds) aws emr-serverless cancel-job-run \ --application-idAPPLICATION_ID
\ --job-run-idJOB_RUN_ID
\ --shutdown-grace-period-in-seconds 300 # Immediate Termination aws emr-serverless cancel-job-run \ --application-idAPPLICATION_ID
\ --job-run-idJOB_RUN_ID
\ --shutdown-grace-period-in-seconds 0
Tambahkan kait shutdown kustom (opsional)
Sementara EMR Serverless mengelola shutdown yang anggun secara default melalui pendengar kueri streaming bawaannya, Anda dapat secara opsional menerapkan logika shutdown khusus untuk kueri streaming individual. EMR Tanpa Server mendaftarkan pendengar shutdown yang anggun dengan prioritas 60 (menggunakan). ShutdownHookManager Karena kait prioritas yang lebih tinggi dijalankan terlebih dahulu, Anda dapat mendaftarkan operasi pembersihan khusus Anda dengan prioritas lebih besar dari 60 untuk memastikannya dijalankan sebelum proses shutdown EMR Serverless dimulai.
Untuk menambahkan hook khusus, lihat contoh pertama dalam topik ini yang menunjukkan cara menambahkan hook shutdown dalam kode aplikasi Anda. Di sini, 100 adalah prioritas, yang lebih besar dari 60. Oleh karena itu kait shutdown seperti itu akan berjalan lebih dulu.
catatan
Kait shutdown khusus bersifat opsional dan tidak diperlukan untuk fungsionalitas shutdown yang anggun, yang ditangani secara otomatis oleh EMR Tanpa Server.
Biaya Masa Tenggang dan Durasi Batch
Jika nilai default untuk masa tenggang (120 detik) digunakan:
Jika durasi batch Anda kurang dari 120 detik, Anda hanya akan dikenakan biaya untuk waktu aktual yang diperlukan untuk menyelesaikan batch.
Jika durasi batch Anda melebihi 120 detik, Anda akan dikenakan biaya untuk masa tenggang maksimum (120 detik), tetapi kueri mungkin tidak dimatikan dengan baik karena akan dihentikan secara paksa.
Untuk mengoptimalkan biaya dan memastikan shutdown yang anggun:
Untuk durasi batch > 120 detik: Pertimbangkan untuk meningkatkan masa tenggang agar sesuai dengan durasi batch Anda
Untuk durasi batch <120 detik: Tidak perlu menyesuaikan masa tenggang karena Anda hanya akan dikenakan biaya untuk waktu pemrosesan yang sebenarnya
Pertimbangan
Perilaku Masa Tenggang
Masa tenggang menyediakan waktu agar kait shutdown terdaftar Anda selesai.
Job berakhir segera setelah shutdown hook selesai bahkan jika itu jauh sebelum masa tenggang.
Jika operasi pembersihan melebihi masa tenggang, pekerjaan akan dihentikan secara paksa.
Perilaku Layanan
Penutupan masa tenggang hanya tersedia untuk pekerjaan dalam status RUNNING.
Permintaan pembatalan berikutnya selama status CANCELLING diabaikan.
-
Jika EMR Tanpa Server gagal memulai penutupan masa tenggang karena kesalahan layanan internal:
Layanan akan mencoba lagi hingga 2 menit.
Jika percobaan ulang tidak berhasil, pekerjaan akan dihentikan secara paksa.
Penagihan
Pekerjaan ditagih untuk sumber daya komputasi yang digunakan sampai pekerjaan benar-benar ditutup, termasuk waktu yang diambil selama masa tenggang.