Spark Interpreter 在 Zeppelin 中不起作用

Posted

技术标签:

【中文标题】Spark Interpreter 在 Zeppelin 中不起作用【英文标题】:Spark Interpreter does not work in Zeppelin 【发布时间】:2018-10-13 20:01:25 【问题描述】:

我正在使用 Zeppelin 0.7.0 运行 Spark 作业。 My Zeppelin 是独立安装,而 Spark 是使用 Hortonworks/Ambari(2.6 版)安装的。当我在 Ambari 检查 Spark 的状态时,它都是绿色的。 Zeppelin 对于许多口译员来说也运行良好。但是 Spark 解释器不起作用。我尝试做的任何事情,即使是像sc.version 这样简单的事情都会给出这个完全相同的错误:

java.lang.NullPointerException
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:38)
    at org.apache.zeppelin.spark.Utils.invokeMethod(Utils.java:33)
    at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:652)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:70)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:483)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:175)
    at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:139)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

这个错误发生得非常意外。 Spark 解释器工作正常,直到几周前开始出现此错误。我已重新启动 Spark 和 Zeppelin,但错误仍然存​​在。 Zeppelin 或 Spark 的配置文件中没有任何更改导致此问题。

【问题讨论】:

您可以尝试从 Zeppelin 使用的 SPARK_HOME 运行 Spark shell 吗? 是的,spark shell 可以正常打开,我可以运行命令了。 嗯。不使用 HDP 提供的 Zeppelin 有什么特别的原因吗? 我认为当时与该版本 HDP 捆绑的 Zeppelin 存在问题(内存泄漏),我们决定使用问题较少的旧版本。 【参考方案1】:

请多查看解释器日志,你看到的错误是因为创建SparkContext失败,你需要查看日志看看为什么SparkContext创建失败。

【讨论】:

@Shankar Koirala 我在 Windows 10 和 scala/spark 中设置时遇到此错误,任何线索我在这里缺少什么```` java.lang.ClassNotFoundException: org.apache.zeppelin。 interpreter.remote.RemoteInterpreterServer 在 java.net.URLClassLoader.findClass(URLClassLoader.java:381) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:424) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:689) 在【参考方案2】:

我在使用 Zeppelin 时遇到了同样的问题,并通过解释器设置得到了修复。

    转到解释器并搜索并选择火花Interpreter 点击编辑添加namevaluezeppelin.spark.useHiveContext = false

希望这行得通!

【讨论】:

添加后可以重启zeppelin吗?

以上是关于Spark Interpreter 在 Zeppelin 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 zeppelin 中将数组从 spark 绑定到 javascript?

Zeppelin Spark Maxmind jackson.databind NoSuchMethodError

java.lang.ClassNotFoundException: org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer 尝试在

IntelliJ IDEA Ultimate家族新成员Big Data Tools——集成Zeppelin和Spark

在 zeppelinUI (spark-submit) 中调用 jar 的 main 方法

设计模式---领域规则模式之解析器模式(Interpreter)