Ich habe eine laufende Spark-Anwendung, in der alle Kerne belegt sind, in denen meinen anderen Anwendungen keine Ressource zugewiesen wird.
Ich habe einige schnelle Nachforschungen angestellt und die Leute schlugen vor, YARN kill oder / bin / spark-class zu verwenden, um den Befehl zu beenden. Ich verwende jedoch die CDH-Version und / bin / spark-class existiert überhaupt nicht. Die YARN-Kill-Anwendung funktioniert auch nicht.
Kann jemand mit mir damit?
apache-spark
yarn
pyspark
B.Mr.W.
quelle
quelle
Antworten:
yarn application -kill application_1428487296152_25597
quelle
web UI
?Spark History UI
Benutzeroberfläche von YARNRUNNING
Apps ( Garn-Host: 8088 / Cluster / Apps / RUNNING ) oder von derSpark Job Web UI
URL ( Garn-Host: 8088 / Proxy / Anwendung_ <Zeitstempel> _ <ID> )Es kann zeitaufwändig sein, alle Anwendungs-IDs von YARN abzurufen und einzeln zu beenden. Sie können eine Bash for-Schleife verwenden, um diese sich wiederholende Aufgabe schnell und effizienter auszuführen, wie unten gezeigt:
Beenden Sie alle Anwendungen auf YARN, die sich im Status AKZEPTIERT befinden:
for x in $(yarn application -list -appStates ACCEPTED | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done
Beenden Sie alle Anwendungen auf YARN, die sich im Status RUNNING befinden:
for x in $(yarn application -list -appStates RUNNING | awk 'NR > 2 { print $1 }'); do yarn application -kill $x; done
quelle
https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API
PUT http: // {rm http-Adresse: Port} / ws / v1 / cluster / apps / {appid} / state
quelle
Dies ist möglicherweise keine ethische und bevorzugte Lösung, hilft jedoch in Umgebungen, in denen Sie nicht auf die Konsole zugreifen können, um den Auftrag mit dem Befehl garnapplikation abzubrechen.
Schritte sind
Gehen Sie zur Anwendungs-Masterseite des Spark-Jobs. Klicken Sie auf den Bereich Jobs. Klicken Sie auf die aktive Phase des aktiven Jobs. Sie sehen die Schaltfläche "Töten" direkt neben der aktiven Stufe.
Dies funktioniert, wenn die nachfolgenden Phasen von der aktuell ausgeführten Phase abhängen. Der Job wird jedoch als "Vom Benutzer getötet" markiert.
quelle