为什么SparkContext随机关闭,你如何从Zeppelin重启它?

The*_*uma 16 apache-spark apache-spark-sql pyspark apache-zeppelin

我在Zeppelin工作写spark-sql查询,有时我突然开始收到此错误(在不更改代码后):

Cannot call methods on a stopped SparkContext.
Run Code Online (Sandbox Code Playgroud)

然后输出进一步下降:

The currently active SparkContext was created at:

(No active SparkContext.)
Run Code Online (Sandbox Code Playgroud)

这显然没有意义.这是Zeppelin的一个错误吗?或者我做错了什么?如何重新启动SparkContext?

谢谢

use*_*742 15

我曾经多次面对这个问题.

如果您将master设置为yarn-client,则可能是由于资源管理器的停止/重新启动,解释器进程可能仍在运行,但Spark Context(它是一个Yarn应用程序)不再存在.

您可以通过咨询资源管理器Web界面检查Spark Context是否仍在运行,并检查是否有名为Zeppelin的应用程序正在运行.

有时从Zeppelin(解释器选项卡 - > spark - > restart)重新启动解释器进程将解决问题.

其他时候你需要:

  • 从命令行终止Spark解释器进程
  • 删除Spark解释器PID文件
  • 并且下次启动段落时,它将启动新的spark上下文


Fra*_*nzi 7

我在PySpark遇到了运行多个作业的同样问题.似乎在Spark 2.0.0中,使用SparkSession,当我调用spark.stop()SparkSession时调用以下跟踪:

# SparkSession 
self._sc.stop()
# SparkContext.stop()
self._jsc = None
Run Code Online (Sandbox Code Playgroud)

然后,当我尝试使用新的SparkContext创建一个新作业时,SparkSession返回与之前相同的SparkContext self.jsc = None.

我解决了设置SparkSession._instantiatedContext = Nonespark.stop()迫使SparkSession创建一个新的,我需要SparkContext下一次.

这不是最好的选择,但同时它正在解决我的问题.