Spark Kill Running Application

101

Mam uruchomioną aplikację Spark, w której zajmuje ona wszystkie rdzenie, na których moje inne aplikacje nie otrzymają żadnego zasobu.

Zrobiłem kilka szybkich badań i ludzie zasugerowali użycie YARN kill lub / bin / spark-class do zabicia polecenia. Jednak używam wersji CDH i / bin / spark-class w ogóle nie istnieje, aplikacja YARN kill też nie działa.

wprowadź opis obrazu tutaj

Czy ktoś może ze mną to zrobić?

B.Mr.W.
źródło
1
jeśli jesteś w teście env: ps aux | grep iskra -> uzyskać PID iskry i zabić go z linii poleceń
eliasah
@eliasah "test env", do mnie praca jest już rozprowadzona ..
B.Mr.W.
1
chcesz zabić pracę w produkcji ????
eliasah
1
@eliasah Tak ... praca w produkcji zawiesiła się z powodu awarii jednego hosta.
B.Mr.W.

Odpowiedzi:

214
  • skopiuj identyfikator aplikacji z harmonogramu iskier, na przykład application_1428487296152_25597
  • połączyć się z serwerem, który uruchomił zadanie
  • yarn application -kill application_1428487296152_25597
Gérald Reinhart
źródło
1
Jak dostać się do harmonogramu iskier?
makansij
Czy to to samo co web UI?
makansij
@Hunle Identyfikator można uzyskać z interfejsu użytkownika aplikacji Spark History UIYARN RUNNING( yarn-host: 8088 / cluster / apps / RUNNING ) lub z Spark Job Web UIadresu URL ( yarn-host: 8088 / proxy / application_ <timestamp> _ <id> )
CᴴᴀZ,
2
czy można zabić kilka na raz: aplikacja przędzy -kill application_1428487296152_25597 application_1428487296152_25598 ... ??
user3505444
7

Pobranie wszystkich identyfikatorów aplikacji z YARN i zabicie ich jeden po drugim może być czasochłonne. Możesz użyć pętli Bash for, aby wykonać to powtarzalne zadanie szybko i wydajniej, jak pokazano poniżej:

Zabij wszystkie aplikacje na przędzy, które są w stanie ZAAKCEPTOWANY:

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

Zabij wszystkie aplikacje na YARN, które są w stanie RUNING:

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

Anil Kumar
źródło
1

Może to nie być etyczne i preferowane rozwiązanie, ale pomaga w środowiskach, w których nie można uzyskać dostępu do konsoli, aby zakończyć pracę za pomocą polecenia aplikacji yarn.

Kroki są

Przejdź do strony wzorcowej aplikacji Spark Job. Kliknij sekcję Praca. Kliknij aktywny etap aktywnego zadania. Zaraz obok aktywnego etapu zobaczysz przycisk „zabij”.

Działa to, jeśli kolejne etapy są zależne od aktualnie uruchomionego etapu. Chociaż oznacza pracę jako „zabity przez użytkownika”

Sachin Gaikwad
źródło