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?


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

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



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"

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.