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

13
demandé sur The Puma 2016-02-20 00:12:10

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
11
répondu user1314742 2016-03-07 21:19:34

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.

6
répondu Franzi 2016-08-18 17:54:55

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