Halaman ini mencantumkan penyebab umum penundaan penjadwalan tugas Managed Service untuk Apache Spark, dengan informasi yang dapat membantu Anda menghindarinya.
Ringkasan
Berikut adalah alasan umum mengapa tugas Managed Service untuk Apache Spark ditunda (dibatasi):
- Terlalu banyak tugas yang berjalan
- Penggunaan memori sistem yang tinggi
- Memori kosong tidak cukup
- Batas kapasitas terlampaui
Biasanya, pesan penundaan tugas akan dikeluarkan dalam format berikut:
Awaiting execution [SCHEDULER_MESSAGE]"
Bagian berikut memberikan kemungkinan penyebab dan solusi untuk skenario penundaan tugas tertentu.
Terlalu banyak tugas yang berjalan
Pesan penjadwal:
Throttling job ### (and maybe others): Too many running jobs (current=xx max=xx)
Penyebab:
Jumlah maksimum tugas serentak berdasarkan memori VM master terlampaui (driver tugas berjalan di VM master cluster Managed Service untuk Apache Spark). Secara default, Managed Service untuk Apache Spark mencadangkan memori 3,5 GB untuk aplikasi, dan mengizinkan 1 tugas per GB.
Contoh: Jenis mesin n1-standard-4 memiliki memori 15GB. Dengan 3.5GB yang dicadangkan untuk overhead, 11.5GB tetap ada. Pembulatan ke bawah ke bilangan bulat, 11GB tersedia untuk maksimal 11 tugas serentak.
Solusi:
Pantau metrik log, seperti penggunaan CPU dan memori, untuk memperkirakan persyaratan tugas.
Saat Anda membuat cluster tugas:
Gunakan jenis mesin memori yang lebih besar untuk VM master cluster.
Jika
1GBper tugas lebih dari yang Anda butuhkan, tetapkandataproc:dataproc.scheduler.driver-size-mbproperti cluster ke kurang dari1024.Tetapkan properti cluster
dataproc:dataproc.scheduler.max-concurrent-jobske nilai yang sesuai dengan persyaratan tugas Anda.
Memori sistem tinggi atau memori kosong tidak cukup
Pesan penjadwal:
Throttling job xxx_____JOBID_____xxx (and maybe others): High system memory usage (current=xx%)
Throttling job xxx_____JOBID_____xxx (and maybe others): Not enough free memory (current=xx min=xx)
Penyebab:
Secara default, agen Managed Service untuk Apache Spark membatasi pengiriman tugas saat penggunaan memori mencapai 90% (0.9). Jika batas ini tercapai, tugas baru tidak dapat dijadwalkan.
Jumlah memori kosong yang diperlukan untuk menjadwalkan tugas lain di cluster tidak mencukupi.
Solusi:
Saat Anda membuat cluster:
Batas kapasitas tugas terlampaui
Pesan penjadwal:
Throttling job xxx__JOBID___xxx (and maybe others): Rate limit
Penyebab:
Agen Managed Service untuk Apache Spark mencapai batas kapasitas pengiriman tugas.
Solusi:
- Secara default, pengiriman tugas agen Managed Service untuk Apache Spark dibatasi pada
1.0 QPS, yang dapat Anda tetapkan ke nilai yang berbeda saat membuat cluster dengan properti clusterdataproc:dataproc.scheduler.job-submission-rate.
Melihat status tugas
Untuk melihat status dan detail tugas, lihat Pemantauan dan proses debug tugas.