Pourquoi SparkContext se ferme-t-il au hasard, et comment le redémarre-t-on à partir de Zeppelin?
je travaille dans Zeppelin en écrivant des requêtes spark-sql et parfois je commence soudainement à recevoir cette erreur (après ne pas avoir changé de code):
Cannot call methods on a stopped SparkContext.
puis le résultat dit plus bas:
The currently active SparkContext was created at:
(No active SparkContext.)
cela n'a évidemment pas de sens. C'est un insecte dans Zeppelin? Ou suis-je en train de faire quelque chose de mal? Comment puis-je redémarrer le SparkContext?
Merci
4 réponses
j'ai fait face à ce problème à quelques reprises.
si vous définissez votre master en tant que Fil-client, cela pourrait être dû à l'arrêt / redémarrage de Resource Manager, le processus d'interprétation peut toujours être en cours mais le contexte Spark (qui est une application de fil) n'existe plus.
vous pouvez vérifier si le contexte Spark est toujours en cours d'exécution en consultant votre Interface web Resource manager et vérifier s'il y a une application appelée Zeppelin exécuter.
parfois redémarrer le processus interpréteur à partir de Zeppelin (onglet interpréteur --> spark --> restart) résoudra le problème.
d'Autres moments, vous avez besoin de:
- tuer l'Étincelle interprète processus en ligne de commande
- retirer la bougie Interprète fichier PID
- et la prochaine fois que vous démarrez un paragraphe, il va commencer de nouvelles étincelle contexte
je fais face au même problème en exécutant plusieurs jobs en PySpark. Il semble que dans Spark 2.0.0, avec SparkSession, quand j'appelle spark.stop()
SparkSession appelle la trace suivante:
# SparkSession
self._sc.stop()
# SparkContext.stop()
self._jsc = None
puis, quand j'essaie de créer un nouveau travail avec un nouveau SparkContext, SparkSession renvoie le même SparkContext qu'avant avec self.jsc = None
.
j'ai résolu le paramètre SparkSession._instantiatedContext = None
après spark.stop()
forçant SparkSession à créer un SparkContext la prochaine fois que je demande.
ce n'est pas la meilleure option, mais en attendant ça résout mon problème.
j'ai remarqué ce problème plus en cours d'exécution pyspark
commandes même avec des déclarations de variables triviales qu'une exécution de cellule est suspendue en cours d'exécution.
Comme mentionné ci-dessus par l'utilisateur 1314742, juste tuer Le pertinent PID
résout ce problème pour moi.
e.g.:
ps -ef | grep zeppelin
c'est là que redémarrer l'interpréteur D'étincelles et redémarrer le bloc-notes zeppelin ne résout pas le problème. Je suppose que parce qu'il ne peut pas contrôler le hung