Aplikasi Menjalankan Spark Kill

101

Saya memiliki aplikasi Spark yang sedang berjalan yang menempati semua inti di mana aplikasi saya yang lain tidak akan dialokasikan sumber daya apa pun.

Saya melakukan beberapa penelitian cepat dan orang menyarankan menggunakan YARN kill atau / bin / spark-class untuk mematikan perintah. Namun, saya menggunakan versi CDH dan / bin / spark-class bahkan tidak ada sama sekali, aplikasi YARN kill juga tidak berfungsi.

masukkan deskripsi gambar di sini

Adakah yang bisa dengan saya dengan ini?

B.Mr.W.
sumber
1
jika Anda berada dalam tes env: ps aux | grep spark -> dapatkan pid dari spark dan matikan dari baris perintah
eliasah
@eliasah "test env", bagi saya job tersebut sudah didistribusikan ..
B.Mr.W.
1
Anda ingin membunuh pekerjaan di produksi ????
eliasah
1
@eliasah Ya ... sebuah pekerjaan di produksi terhenti karena kegagalan di satu host.
B.Mr.W.

Jawaban:

213
  • salin melewati ID aplikasi dari penjadwal percikan, misalnya application_1428487296152_25597
  • terhubung ke server yang telah meluncurkan pekerjaan
  • yarn application -kill application_1428487296152_25597
Gérald Reinhart
sumber
1
Bagaimana Anda mendapatkan penjadwal percikan?
makansij
Apakah sama dengan web UI?
makansij
@Hunle Anda bisa mendapatkan ID dari Spark History UIatau RUNNINGUI aplikasi YARN ( thread-host: 8088 / cluster / apps / RUNNING ) atau dari Spark Job Web UIURL ( yarn-host: 8088 / proxy / application_ <timestamp> _ <id> )
CᴴᴀZ
2
dapatkah seseorang membunuh beberapa sekaligus: aplikasi benang -bunuh application_1428487296152_25597 application_1428487296152_25598 ... ??
user3505444
7

Mungkin memakan waktu lama untuk mendapatkan semua ID aplikasi dari YARN dan mematikannya satu per satu. Anda dapat menggunakan Bash for loop untuk menyelesaikan tugas berulang ini dengan cepat dan lebih efisien seperti yang ditunjukkan di bawah ini:

Bunuh semua aplikasi di YARN yang dalam status DITERIMA:

for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done

Matikan semua aplikasi di YARN yang berada dalam status BERJALAN:

for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done

Anil Kumar
sumber
1

Ini mungkin bukan solusi etis dan pilihan tetapi membantu dalam lingkungan di mana Anda tidak dapat mengakses konsol untuk menghentikan pekerjaan menggunakan perintah aplikasi benang.

Langkah-langkahnya adalah

Pergi ke halaman master aplikasi pekerjaan percikan. Klik pada bagian pekerjaan. Klik pada tahapan aktif pekerjaan aktif. Anda akan melihat tombol "kill" tepat di sebelah stage aktif.

Ini berfungsi jika tahapan berikutnya bergantung pada tahapan yang sedang berjalan. Meskipun itu menandai pekerjaan sebagai "Dibunuh Oleh Pengguna"

Sachin Gaikwad
sumber