Lors de la soumission d'un programme de diffusion d'étincelles à l'aide de la méthode spark-submit (mode YARN) , Il continue à interroger l'état et ne quitte jamais
Y at-il une option dans spark-submit pour quitter après la soumission?
=== pourquoi cela me trouble ===
Le programme de streaming fonctionnera indéfiniment et je n'ai pas besoin de la mise à jour du statut
Je peux ctrl + c pour l'arrêter si je le démarre manuellement Mais j'ai beaucoup de contexte de streaming pour commencer et j'ai besoin de les démarrer en utilisant un script
Je peux mettre le programme spark-submit en arrière-plan, , Mais après la création de nombreux processus Java en arrière-plan, l'utilisateur correspondant à ne pourra plus exécuter aucun autre processus Java, car la machine virtuelle Java ne peut pas créer de thread GC.
Intéressant. Je n'ai jamais pensé à ce problème. Je ne suis pas sûr qu'il existe un moyen propre de le faire, mais je supprime simplement le processus de soumission sur la machine et le travail de fil continue de s'exécuter jusqu'à ce que vous le stoppiez spécifiquement. Ainsi, vous pouvez créer un script qui exécute la soumission par étincelle, puis le tue. Quand vous voulez vraiment arrêter le travail, utilisez le filé-Kill. Sale mais ça marche.
Je sais que c’est une vieille question, mais il existe un moyen de le faire maintenant en définissant --conf spark.yarn.submit.waitAppCompletion=false
lorsque vous utilisez spark-submit
. Avec cela, le client va quitter après avoir soumis avec succès l'application.
En mode cluster YARN, contrôle si le client attend de quitter jusqu'à ce que Se termine. Si la valeur est true, le processus client restera actif Pour signaler le statut de l'application. Sinon, le processus client Se terminera après la soumission.
En outre, vous devrez peut-être définir --deploy-mode
sur cluster
En mode cluster, le pilote Spark s'exécute dans un processus de maître d'application Géré par YARN sur le cluster et le client peut quitter Après avoir lancé l'application.
Plus à https://spark.Apache.org/docs/1.6.1/running-on-yarn.html
la commande timeout TIME CMD
va fermer CMD après TIME