【问题标题】:apache-zeppelin 0.8.0 installation while using home brew on mac OS在 Mac OS 上使用 home brew 时安装 apache-zeppelin 0.8.0
【发布时间】:2018-12-25 23:09:01
【问题描述】:

我已经使用 home brew 安装了 java 版本“1.8.0_181”、scala、apache-spark、apache-zeppelin,并且在这些安装过程中没有出现错误。

如果我在终端运行 $ spark-shell ,它会显示警告但仍然调用 scala,如下所示:

但是,当我打开 http://localhost:8080/#/ 并运行 sc.version 时,它显示错误如下:

scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mirror not found.
at scala.reflect.internal.MissingRequirementError$.signal(MissingRequirementError.scala:17)
at scala.reflect.internal.MissingRequirementError$.notFound(MissingRequirementError.scala:18)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:53)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:45)
at scala.reflect.internal.Mirrors$RootsBase.getModuleOrClass(Mirrors.scala:66)
at scala.reflect.internal.Mirrors$RootsBase.getClassByName(Mirrors.scala:102)
at scala.reflect.internal.Mirrors$RootsBase.getRequiredClass(Mirrors.scala:105)
at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass$lzycompute(Definitions.scala:257)
at scala.reflect.internal.Definitions$DefinitionsClass.ObjectClass(Definitions.scala:257)
at scala.reflect.internal.Definitions$DefinitionsClass.init(Definitions.scala:1394)
at scala.tools.nsc.Global$Run.<init>(Global.scala:1215)
at scala.tools.nsc.interpreter.IMain.compileSourcesKeepingRun(IMain.scala:432)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compileAndSaveRun(IMain.scala:855)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.compile(IMain.scala:813)
at scala.tools.nsc.interpreter.IMain.bind(IMain.scala:675)
at scala.tools.nsc.interpreter.IMain.bind(IMain.scala:712)
at scala.tools.nsc.interpreter.IMain$$anonfun$quietBind$1.apply(IMain.scala:711)
at scala.tools.nsc.interpreter.IMain$$anonfun$quietBind$1.apply(IMain.scala:711)
at scala.tools.nsc.interpreter.IMain.beQuietDuring(IMain.scala:214)
at scala.tools.nsc.interpreter.IMain.quietBind(IMain.scala:711)
at scala.tools.nsc.interpreter.ILoop.scala$tools$nsc$interpreter$ILoop$$loopPostInit(ILoop.scala:891)
at jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.zeppelin.spark.BaseSparkScalaInterpreter.callMethod(BaseSparkScalaInterpreter.scala:270)
at org.apache.zeppelin.spark.BaseSparkScalaInterpreter.callMethod(BaseSparkScalaInterpreter.scala:262)
at org.apache.zeppelin.spark.SparkScala211Interpreter.open(SparkScala211Interpreter.scala:84)
at org.apache.zeppelin.spark.NewSparkInterpreter.open(NewSparkInterpreter.java:102)
at org.apache.zeppelin.spark.SparkInterpreter.open(SparkInterpreter.java:62)
at org.apache.zeppelin.interpreter.LazyOpenInterpreter.open(LazyOpenInterpreter.java:69)
at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:617)
at org.apache.zeppelin.scheduler.Job.run(Job.java:188)
at org.apache.zeppelin.scheduler.FIFOScheduler$1.run(FIFOScheduler.java:140)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:514)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1135)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:844)

我怎么能解决这个问题?

【问题讨论】:

  • 我自己也遇到了这个问题>:|
  • 我对这个错误的问题最终是我编辑了 Spark 2.3.1 包以包含一些我们需要的库。我在 MacOS 上运行的 tar 命令以某种方式损坏了包。尽管它在我们运行 linux 的 spark 集群节点上工作,但当我将同一个包与 Zeppelin 一起使用时,它给出了这个奇怪的错误。如果我使用 Spark 下载页面中的 vanilla 包,这个错误就消失了。也许 spark/zeppelin 的 brew 安装也有我在修改包时遇到的相同损坏?只是猜测。
  • 对于任何在谷歌上搜索的人:apache-zeppelin 目前不是 brew repo 的一部分。您无法使用 brew 安装它。

标签: apache-zeppelin


【解决方案1】:

我在安装 home brew 时遇到了多个问题,但使用 docker 运行对我有用(http://zeppelin.apache.org/download.html#using-the-official-docker-image ): "使用此命令在容器中启动 Apache Zeppelin。

docker run -p 8080:8080 --rm --name zeppelin apache/zeppelin:0.8.0 要保留日志和笔记本目录,请使用 docker 容器的 volume 选项。

docker run -p 8080:8080 --rm -v $PWD/logs:/logs -v $PWD/notebook:/notebook -e ZEPPELIN_LOG_DIR='/logs' -e ZEPPELIN_NOTEBOOK_DIR='/notebook' --name齐柏林飞艇阿帕奇/齐柏林飞艇:0.8.0 如果您在浏览器中访问 localhost:8080 有问题,请清除浏览器缓存。”

【讨论】:

  • 感谢您的回答!但是在运行 docker run -p 8080:8080 --rm --name zeppelin apache/zeppelin:0.8.0 之后,我有这样的新错误: docker: Error response from daemon: driver failed Programming external connectivity on endpoint zeppelin (140194f5c043912c1d3eb620bbf780bdf52cbbe0922edaaf7121664d88eb18 : 启动用户态代理时出错:绑定 0.0.0.0:8080 失败:端口已分配。
  • 看起来其他进程使用相同的端口。您可以通过运行 sudo lsof -i tcp:8080 找到它是什么进程,如果它不重要则终止该进程或尝试其他端口。
【解决方案2】:

就我而言,这是在 Java8 之前安装 Java10 的问题。显然,Spark 还不支持 8.0 以上的 Java 版本。通过将 JAVA_HOME 环境变量设置为您的 Java8 安装,可以解决此问题。 如果没有:

brew cask install java8

MacO 的默认位置应该是:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home"

如果您通过 zeppelin-deamon.sh 启动 zeppelin 服务器,则只需在文件开头添加上述导出。 您应该找到 zepplin-deamon.sh 的真实文件位置,如果您通过自制软件安装了 zeppelin,它应该位于:

/usr/local/Cellar/apache-zeppelin/0.8.1/libexec/bin/zeppelin-daemon.sh

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-01
    • 2017-04-07
    • 2023-02-10
    • 2011-04-20
    • 2019-03-26
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多