web-dev-qa-db-fra.com

Spark Kill Application en cours d'exécution

J'ai une application en cours d'exécution Spark où elle occupe tous les cœurs où aucune autre ressource ne sera allouée à mes autres applications.

J'ai fait quelques recherches rapides et des personnes ont suggéré d'utiliser YARN kill ou/bin/spark-class pour tuer la commande. Cependant, j'utilise la version CDH et/bin/spark-class n'existe même pas du tout, l'application de suppression YARN ne fonctionne pas non plus.

enter image description here

Quelqu'un peut-il avec moi avec ça?

78
B.Mr.W.
  • copier après l'ID d'application à partir du planificateur spark, par exemple application_1428487296152_25597
  • se connecter au serveur qui a lancé le travail
  • yarn application -kill application_1428487296152_25597
174
Gérald Reinhart

https://hadoop.Apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/ResourceManagerRest.html#Cluster_Application_State_API

PUT http: // {rm adresse http: port}/ws/v1/cluster/apps/{appid}/state

{
  "state":"KILLED"
}
3
Starwalker

Il peut être fastidieux d’obtenir tous les ID d’application de YARN et de les tuer un à un. Vous pouvez utiliser une boucle Bash for pour accomplir cette tâche répétitive rapidement et plus efficacement, comme indiqué ci-dessous:

Tuez toutes les applications sur YARN qui sont dans l'état ACCEPTED:

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

Tuez toutes les applications sur YARN qui sont à l'état RUNNING:

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

0
Anil Kumar K B