Spark Kill Running Application


101

Ho un'applicazione Spark in esecuzione in cui occupa tutti i core in cui le mie altre applicazioni non verranno assegnate alcuna risorsa.

Ho fatto alcune ricerche veloci e le persone hanno suggerito di usare YARN kill o / bin / spark-class per uccidere il comando. Tuttavia, sto usando la versione CDH e / bin / spark-class non esiste nemmeno, l'applicazione kill YARN non funziona neanche.

inserisci qui la descrizione dell'immagine

Qualcuno può con me con questo?


1
se ti trovi in ​​un ambiente di prova: ps aux | grep spark -> prendi il pid di spark e uccidilo dalla riga di comando
eliasah

@eliasah "test env", per me il lavoro è già distribuito ..
B.Mr.W.

1
vuoi uccidere un lavoro in produzione ????
eliasah

1
@eliasah Sì ... un lavoro nella produzione è stato sospeso a causa del fallimento in un host.
B.Mr.W.

Risposte:


213
  • copia oltre l'ID dell'applicazione dallo spark scheduler, ad esempio application_1428487296152_25597
  • connettersi al server che ha avviato il lavoro
  • yarn application -kill application_1428487296152_25597

1
Come si arriva allo Spark Scheduler?
makansij

È lo stesso del web UI?
makansij

@Hunle È possibile ottenere l'ID da Spark History UIo filati RUNNINGapps UI ( filo-host: 8088 / cluster / apps / RUNNING ) o da Spark Job Web UIURL ( filo-host: 8088 / proxy / application_ <timestamp> _ <id> )
CᴴᴀZ

2
se ne possono uccidere diversi contemporaneamente: applicazione del filato -uccidere application_1428487296152_25597 application_1428487296152_25598 ... ??
user3505444

7

Potrebbe richiedere molto tempo ottenere tutti gli ID dell'applicazione da YARN e ucciderli uno per uno. È possibile utilizzare un ciclo Bash for per eseguire questa attività ripetitiva in modo rapido ed efficiente come mostrato di seguito:

Elimina tutte le applicazioni su YARN che sono nello stato ACCETTATO:

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

Elimina tutte le applicazioni su YARN che sono in stato RUNNING:

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



1

Questa potrebbe non essere una soluzione etica e preferita, ma aiuta negli ambienti in cui non è possibile accedere alla console per terminare il lavoro utilizzando il comando dell'applicazione filato.

I passaggi sono

Vai alla pagina principale dell'applicazione di Spark Job. Fare clic sulla sezione lavori. Fare clic sulla fase attiva del lavoro attivo. Vedrai il pulsante "kill" proprio accanto alla fase attiva.

Funziona se le fasi successive dipendono dalla fase attualmente in esecuzione. Anche se contrassegna il lavoro come "Ucciso dall'utente"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.