【问题标题】:Apache Toree with Anaconda Jupyter NotebookApache Toree 与 Anaconda Jupyter Notebook
【发布时间】:2017-03-20 08:10:51
【问题描述】:

我想寻求与 Anaconda Jupyter notebook 相关的帮助。我想在 Jupyter notebook 中编写 PySpark 和 SparkR,我按照在线教程教如何将 Apache Toree 与 Jupyter notebook 一起安装。

我正在使用 Cloudera Manager 包来管理我的 kerberized Hadoop 集群。

但是,我无法打开 Apache Toree PySpark 的内核,并在服务器日志中显示以下错误。

[I 15:24:50.529 NotebookApp] Creating new notebook in
[I 15:24:52.079 NotebookApp] Kernel started: 8cb4838c-2171-4672-96a4-b21ef191ffc6
Starting Spark Kernel with SPARK_HOME=/opt/cloudera/parcels/CDH/lib/spark
WARNING: User-defined SPARK_HOME (/opt/cloudera/parcels/CDH-5.9.0-1.cdh5.9.0.p2024.2115/lib/spark) overrides detected (/opt/cloudera/parcels/CDH/lib/spark).
WARNING: Running spark-class from user-defined location.
Exception in thread "main" java.lang.NoSuchMethodError: joptsimple.OptionParser.acceptsAll(Ljava/util/Collection;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
    at org.apache.toree.boot.CommandLineOptions.<init>(CommandLineOptions.scala:37)
    at org.apache.toree.Main$delayedInit$body.apply(Main.scala:25)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.App$$anonfun$main$1.apply(App.scala:71)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
    at scala.App$class.main(App.scala:71)
    at org.apache.toree.Main$.main(Main.scala:24)
    at org.apache.toree.Main.main(Main.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

我已将 jopt-simple-4.5.jar 放在 Toree 库和 Spark 主页中。有没有什么地方我必须把罐子放在那里,以便在尝试创建新笔记本时可以找到它?谢谢。

最好的问候, 卢卡

【问题讨论】:

  • 我也有同样的问题。链接issues.apache.org/jira/browse/TOREE-324 表示使用 jopt-simple 4.9 重新编译。我已经完成了对这个更改的重新编译,但我需要 prod IT 来部署 - 所以我不能说它解决了这个问题。我在gitter.im/apache/toree 上有一个关于这个主题的当前对话 - 请继续关注。

标签: hadoop jupyter-notebook apache-toree


【解决方案1】:

我找到的最简单的解决方案是在 spark-submit 中添加以下选项:

--conf "spark.driver.extraClassPath=/usr/local/share/jupyter/kernels/apache_toree_scala/lib/toree-assembly-0.1.0-incubating.jar" --conf "spark.executor.extraClassPath=/usr/local/share/jupyter/kernels/apache_toree_scala/lib/toree-assembly-0.1.0-incubating.jar"

这可以添加到/usr/local/share/jupyter/kernels/apache_toree_scala/kernel.json 文件的__TOREE_SPARK_OPTS__ 变量中,也可以直接添加到/usr/local/share/jupyter/kernels/apache_toree_scala/bin/run.sh 文件中的bash 命令中。

通过添加此选项,您将强制类加载器从 Toree JAR 加载 joptsimple.OptionParser,而不是从默认 CDH 库加载。

P。 S. 这是一个与 CDH 5.10.0 兼容的 Toree 版本:https://github.com/Myllyenko/incubator-toree/releases

【讨论】:

  • 您的解决方案很有意义......我一直在玩弄配置来尝试这个建议......我错过了一些东西。您是否将此 conf 行添加到 Apache Toree 的配置或编辑 bash spark-submit 文件?你能提供一些细节吗?为了让 CDH(对我来说是 5.9.2)与 Toree 合作,您是否做过其他值得注意的事情?
  • 我已经更新了我的答案,但我不确定它是否适用于 CDH 5.9.2。在发布此答案的那一刻,我正在寻找一种使用 CDH 5.10.0 启动 Toree 的方法。后来我遇到了其他问题(由于 Apache Spark 和 Cloudera Spark 库之间的二进制不兼容),最终放弃了使用默认 Toree 程序集的尝试。在 Toree Gitter 上,有人建议我针对我的 Spark 库重新编译 Toree。如果我在这方面取得成功,我会告诉你的。
  • 似乎CDH构建/分支是一种可能的方式。我也在做同样的事情,也在 Gitter 聊天中进行协作。 CDH jar 可能不在 repo 中,repo1.maven.org,Toree 在DependencyDownloader 中声明。我浏览了 repo,它似乎没有它们。
  • 看看我的叉子:github.com/Myllyenko/incubator-toree/tree/spark-1.6.0-cdh5.10.0我几乎做到了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-04-11
  • 1970-01-01
  • 1970-01-01
  • 2018-07-31
  • 1970-01-01
  • 2019-02-17
  • 2018-02-15
相关资源
最近更新 更多