eat*_*ode 9 apache-spark apache-zeppelin
我正在使用隔离模式的zeppelins spark解释器,在这种模式下,它将为spark集群中的每个笔记本启动一项新工作.笔记本执行完成后,我想通过zeppelin终止这项工作.为此我做了sc.stop这个停止sparkContext并且作业也从spark集群停止.但是下次当我尝试运行笔记本时,它不再启动了sparkContext.那怎么办呢?
小智 18
它有点反直觉,但您需要访问解释器菜单选项卡而不是SparkContext直接停止:
在使用 Zeppelin 和 Spark 时,我也偶然发现了同样的问题并进行了一些调查。一段时间后,我的第一个结论是:
sc.stop()在段落中使用来完成restart按钮)但是,由于 UI 允许通过按下按钮重新启动 Spark 解释器,为什么不对按钮的 API 调用进行逆向工程restart!结果是,restartingSpark 解释器发送以下 HTTP 请求:
PUT http://localhost:8080/api/interpreter/setting/restart/spark
Run Code Online (Sandbox Code Playgroud)
幸运的是,Zeppelin 能够与多个解释器一起工作,其中一个也是一个 shell解释器。因此,我创建了两段:
第一段用于在需要时停止 SparkContext:
%spark
// stop SparkContext
sc.stop()
Run Code Online (Sandbox Code Playgroud)
第二段用于以编程方式重新启动 SparkContext:
%sh
# restart SparkContext
curl -X PUT http://localhost:8080/api/interpreter/setting/restart/spark
Run Code Online (Sandbox Code Playgroud)
用这两段停止并重新启动 SparkContext 后,我运行另一段来检查重新启动是否有效......它有效!因此,虽然这不是官方解决方案,而是一种解决方法,但它仍然是合法的,因为我们除了“按下”restart段落中的按钮之外什么都不做!
齐柏林飞艇版本:0.8.1
| 归档时间: |
|
| 查看次数: |
10844 次 |
| 最近记录: |