web-dev-qa-db-fra.com

Zeppelin: Comment redémarrer sparkContext dans zeppelin

J'utilise le mode isolé de l'interpréteur d'étincelles Zeppelins. Avec ce mode, il lancera un nouveau travail pour chaque bloc-notes du groupe d'étincelles. Je veux tuer le travail via zeppelin lorsque l'exécution du cahier est terminée. Pour cela, j'ai fait sc.stop ceci a arrêté sparkContext et le travail est également arrêté depuis le cluster d'étincelles. Mais la prochaine fois que j'essayerai de lancer le cahier, sa sparkContext ne redémarre plus. Alors, comment faire ça?

6
eatSleepCode

C'est un peu contre-intuitif, mais vous devez accéder à l'onglet du menu de l'interprète au lieu d'arrêter directement SparkContext:

  • aller à la liste des interprètes.

    interpreter list

  • trouvez l'interprète Spark et cliquez sur restart dans le coin supérieur droit:

    spark intepreter

16
user6022341

J'ai enquêté sur le problème de la raison pour laquelle sc s'est arrêté dans spark-client. Je trouve que c'est le problème de l'étincelle elle-même (version Spark> = 1.6). En mode spark client, le AM ​​se connecte au pilote via une connexion RPC, il existe deux connexions. Il configure NettyRpcEndPointRef pour se connecter au service du pilote 'YarnSchedulerBackEnd' du serveur 'SparkDriver', et une autre connexion est EndPoint 'YarnAM'.

Dans ces connexions RPC entre AM et le pilote, il n'y a pas de pulsations. Ainsi, la seule façon dont AM sait que le pilote est connecté ou non est la méthode OnDisconnected dans EndPoint 'YarnAM'. Le message de déconnexion du pilote et de la connexion AM via NettyRpcEndPointRef "postToAll" via RPCHandler sur EndPoint "YarnAM". Lorsque la connexion TCP entre eux est déconnectée ou le message de maintien en activité détecte que le TCP n'est pas actif (2 heures peut-être dans le système Linux), l'application est considérée comme RÉUSSITE.

Ainsi, lorsque le processus de surveillance de pilote détecte que l'état de l'application de fil est remplacé par SUCCESS, il arrête le sc.

La cause principale est donc que, dans le client Spark, il n'y a aucune tentative de connexion au pilote pour vérifier si le pilote est actif ou non, mais il suffit de marquer l'application de fil le plus rapidement possible. Maybe Spark peut modifier ce problème.

1
kai wu