Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan rotasi log peristiwa Spark
Dengan Amazon EMR 6.3.0 dan yang lebih baru, Anda dapat mengaktifkan fitur rotasi log peristiwa Spark untuk Amazon EMR di EKS. Alih-alih menghasilkan file log peristiwa tunggal, fitur ini merotasikan file berdasarkan interval waktu terkonfigurasi Anda dan menghapus file log peristiwa terlama.
Merotasi log peristiwa Spark dapat membantu Anda menghindari potensi masalah dengan file log peristiwa Spark besar yang dihasilkan untuk tugas yang dijalankan atau di-stream dalam jangka panjang. Misalnya, Anda memulai tugas Spark berjangka panjang dengan log peristiwa yang diaktifkan dengan parameter persistentAppUI. Driver Spark menghasilkan file log peristiwa. Jika tugas berjalan selama berjam-jam atau berhari-hari dan ada ruang disk terbatas pada simpul Kubernetes, file log peristiwa dapat mengkonsumsi semua ruang disk yang tersedia. Mengaktifkan fitur rotasi log peristiwa Spark memecahkan masalah dengan membelah file log ke beberapa file dan menghapus file terlama.
catatan
Fitur ini hanya berfungsi dengan Amazon EMR di EKS. Amazon EMR yang berjalan di Amazon EC2 tidak mendukung rotasi log peristiwa Spark.
catatan
Di Amazon EMR di EKS, rotasi log peristiwa berbasis waktu (spark.eventLog.rotation.*parameter yang dijelaskan di halaman ini) membatasi pertumbuhan log peristiwa Spark berdasarkan interval waktu, dan merupakan mekanisme yang didukung untuk melakukannya. Log peristiwa bergulir berbasis ukuran sumber terbuka (spark.eventLog.rolling.*) tidak didukung untuk unggahan log peristiwa di Amazon EMR di EKS. Saat rolling diaktifkan, driver Spark menulis file segmen berbasis ukuran. Komponen pengiriman log yang dikelola Amazon EMR pada EKS (agen yang mengunggah log peristiwa sehingga aplikasi muncul di Server Sejarah Spark) tidak mengumpulkan file-file ini. Akibatnya, aplikasi tidak muncul di Server Sejarah Spark meskipun pekerjaan berjalan dengan sukses.
Jika log peristiwa Anda tidak muncul di Server Sejarah Spark, periksa spark.eventLog.rolling.enabled apakah disetel, dan beralih ke rotasi log peristiwa seperti yang dijelaskan di bagian berikut.
Untuk mengaktifkan fitur rotasi log peristiwa Spark, konfigurasi parameter Spark berikut:
-
spark.eventLog.rotation.enabled- menyalakan rotasi log. Ini dinonaktifkan secara default dalam file konfigurasi Spark. Atur ke betul untuk mengaktifkan fitur ini. -
spark.eventLog.rotation.interval- menentukan interval waktu untuk rotasi log. Nilai minimum adalah 60 detik. Nilai default adalah 300 detik. -
spark.eventLog.rotation.minFileSize- menentukan ukuran file minimum untuk merotasikan file log. Nilai minimum dan default adalah 1 MB. -
spark.eventLog.rotation.maxFilesToRetain- menentukan berapa banyak dile log yang dirotasikan untuk disimpan selama pembersihan. Rentang validnya adalah 1 hingga 10. Nilai default adalah 2.
Anda dapat menentukan parameter ini dalam bagian sparkSubmitParameters dari API StartJobRun, seperti yang ditunjukkan contoh berikut.
"sparkSubmitParameters": "--class org.apache.spark.examples.SparkPi --conf spark.eventLog.rotation.enabled=true --conf spark.eventLog.rotation.interval=300 --conf spark.eventLog.rotation.minFileSize=1m --conf spark.eventLog.rotation.maxFilesToRetain=2"
Bermigrasi dari log peristiwa bergulir ke rotasi
Jika saat ini Anda menggunakan log peristiwa bergulir berbasis ukuran sumber terbuka, ganti spark.eventLog.rolling.* parameter dengan parameter rotasi. Rotasi membatasi log peristiwa dengan interval waktu (dengan ukuran file minimum) daripada murni berdasarkan ukuran file, jadi pilih interval dan ukuran file minimum yang sesuai dengan tingkat kejadian pekerjaan Anda. Hapus semua spark.eventLog.rolling.* pengaturan saat Anda beralih. Tabel berikut memetakan setiap parameter bergulir ke rotasinya yang setara.
| Parameter bergulir (tidak didukung) | Parameter rotasi (didukung) |
|---|---|
spark.eventLog.rolling.enabled=true |
spark.eventLog.rotation.enabled=true |
spark.eventLog.rolling.maxFileSize(topi berdasarkan ukuran) |
spark.eventLog.rotation.interval(batas berdasarkan waktu; minimal 60 detik, default 300 detik), digunakan dengan spark.eventLog.rotation.minFileSize (minimum dan default 1 MB) |
spark.eventLog.rolling.maxFilesToRetain |
spark.eventLog.rotation.maxFilesToRetain(kisaran valid 1 hingga 10, default 2) |