Application en cours d'exécution Spark Kill

101

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

J'ai fait quelques recherches rapides et les gens 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 destruction YARN ne fonctionne pas non plus.

entrez la description de l'image ici

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

B.Mr.W.
la source
1
si vous êtes dans un test env: ps aux | grep spark -> obtenir le pid de spark et le tuer à partir de la ligne de commande
eliasah
@eliasah "test env", pour moi le travail est déjà distribué ..
B.Mr.W.
1
vous voulez tuer un travail dans la production ????
eliasah
1
@eliasah Ouais ... un travail en production a été suspendu en raison de l'échec d'un hôte.
B.Mr.W.

Réponses:

213
  • copier après l'ID d'application du planificateur Spark, par exemple application_1428487296152_25597
  • se connecter au serveur qui a lancé le travail
  • yarn application -kill application_1428487296152_25597
Gérald Reinhart
la source
1
Comment accéder au planificateur d'étincelles?
makansij du
Est-ce le même que le web UI?
makansij
@Hunle Vous pouvez obtenir l'ID depuis l' interface utilisateur des applications Spark History UIYARN RUNNING( yarn-host: 8088 / cluster / apps / RUNNING ) ou depuis l' Spark Job Web UIURL ( yarn-host: 8088 / proxy / application_ <timestamp> _ <id> )
CᴴᴀZ
2
peut-on en tuer plusieurs à la fois: application de fil -kill application_1428487296152_25597 application_1428487296152_25598 ... ??
user3505444
7

Il peut être long d'obtenir tous les identifiants d'application de YARN et de les supprimer un par 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 ACCEPTÉ:

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

Anil kumar
la source
1

Ce n'est peut-être pas une solution éthique et préférée, mais cela aide dans les environnements où vous ne pouvez pas accéder à la console pour arrêter le travail à l'aide de la commande d'application yarn.

Les étapes sont

Accédez à la page maître de l'application de la tâche Spark. Cliquez sur la section emplois. Cliquez sur l'étape active de la tâche active. Vous verrez le bouton "tuer" juste à côté de l'étape active.

Cela fonctionne si les étapes suivantes dépendent de l'étape en cours d'exécution. Bien qu'il marque le travail comme "Tué par l'utilisateur"

Sachin Gaikwad
la source