为什么SparkContext会随机关闭,您如何从Zeppelin重新启动它?
我在齐柏林写作火花SQL查询工作,有时我突然开始收到此错误(不改变代码后):为什么SparkContext会随机关闭,您如何从Zeppelin重新启动它?
Cannot call methods on a stopped SparkContext.
然后输出表示进一步下跌:
The currently active SparkContext was created at:
(No active SparkContext.)
这显然没有意义。这是Zeppelin的一个错误吗?或者我做错了什么?我怎样才能重新启动SparkContext?
谢谢
我曾经遇到这个问题几次。
如果您将主设置为纱线客户端,可能是由于资源管理器停止/重新启动,解释器进程可能仍在运行,但Spark上下文(这是一个纱线应用程序)不存在任何更多。
您可以通过咨询您的资源管理器Web界面来检查Spark Context是否仍在运行,并检查是否有名为Zeppelin的应用程序正在运行。
有时从Zeppelin(解释器选项卡 - > spark - > restart)重新启动解释器进程将解决问题。
其他时候,你需要:
- 命令行
- 删除你开始一个段落,它将开始新的火花星火解释PID文件
- ,下一次杀死星火翻译过程内容
谢谢你的回答,当我启动我的下一个群集时,我会试试这个 –
我在运行PySpark中的多个作业时遇到同样的问题。似乎在星火2.0.0,与SparkSession,当我打电话spark.stop()
SparkSession调用下面的跟踪:
# SparkSession
self._sc.stop()
# SparkContext.stop()
self._jsc = None
然后,当我尝试创建新的一SparkContext一份新工作,SparkSession返回相同的SparkContext比以前与self.jsc = None
。
我解决了设置SparkSession._instantiatedContext = None
后spark.stop()
强制SparkSession创建一个新 SparkContext下次我的要求。
这不是最好的选择,但同时它解决了我的问题。
spark 1.6怎么样?我找不到SparkSession ... – guilhermecgs
SparkSession是在spark 2.0.0中引入的。 – Franzi
你能检查你的驱动程序的内存是否足够?我解决了这个问题,通过
- 放大驾驶员记忆
-
调GC:
--conf spark.cleaner.periodicGC.interval=60 --conf spark.cleaner.referenceTracking.blocking=false
我已经注意到此问题的详细运行pyspark
命令时甚至琐碎的变量声明细胞执行挂起在运行状态。 正如上面用户1314742所提到的,只要查杀相关的PID
就可以解决这个问题。
例如为:
ps -ef | grep zeppelin
这是重新启动星火解释并重新启动飞艇笔记本不解决问题。我猜是因为它本身无法控制悬挂的PID
。
你正在使用什么火花大师?它是纱线客户吗? – user1314742