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.
Czy ktoś może ze mną to zrobić?
apache-spark
yarn
pyspark
B.Mr.W.
źródło
źródło
Odpowiedzi:
yarn application -kill application_1428487296152_25597
źródło
web UI
?Spark History UI
YARNRUNNING
( yarn-host: 8088 / cluster / apps / RUNNING ) lub zSpark Job Web UI
adresu URL ( yarn-host: 8088 / proxy / application_ <timestamp> _ <id> )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
źródło
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API
PUT http: // {rm http adres: port} / ws / v1 / cluster / apps / {appid} / state
źródło
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”
źródło