【问题标题】:Cannot start spark-shell无法启动火花壳
【发布时间】:2016-01-05 11:34:11
【问题描述】:

我使用的是 Spark 1.4.1。 我可以毫无问题地使用 spark-submit。 但是当我跑~/spark/bin/spark-shell

我收到以下错误 我已经配置了SPARK_HOMEJAVA_HOME。 但是,Spark 1.2 没问题

15/10/08 02:40:30 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

Failed to initialize compiler: object scala.runtime in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.

Failed to initialize compiler: object scala.runtime in compiler mirror not found.
** Note that as of 2.8 scala does not assume use of the java classpath.
** For the old behavior pass -usejavacp to scala, or if using a Settings
** object programatically, settings.usejavacp.value = true.
Exception in thread "main" java.lang.AssertionError: assertion failed: null
        at scala.Predef$.assert(Predef.scala:179)
        at org.apache.spark.repl.SparkIMain.initializeSynchronous(SparkIMain.scala:247)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:990)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
        at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
        at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945)
        at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1059)
        at org.apache.spark.repl.Main$.main(Main.scala:31)
        at org.apache.spark.repl.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:665)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:170)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:193)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:112)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

【问题讨论】:

  • 你在哪里设置SPARK_HOME?在你的 .bashrc 中?因为你得到的错误是由于 SPARK_HOME 没有设置所以spark-shell 尝试从dirname 找到它
  • 我应该将我的 SPARK_HOME 设置为什么?是否应该设置为export SPARK_HOME=/usr/local/Cellar/apache-spark/2.2.0/bin?
  • 我认为问题不在于 SPARK_HOME。不正确的 SPARK_HOME 将导致 spark-shell 脚本无法找到 spark-submit。但是,当我确保 SPARK_HOME 和直接调用“spark-submit --class org.apache.spark.repl.Main”时,我在我的机器上看到了同样的错误。

标签: apache-spark apache-spark-1.4


【解决方案1】:

我在运行 spark 时遇到了同样的问题,但我发现没有正确配置 scala 是我的错。 确保你已经安装了 Java、Scala 和 sbt 并构建了 Spark:

编辑你的 .bashrc 文件 vim .bashrc

设置你的环境变量:

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export PATH=$JAVA_HOME:$PATH

export SCALA_HOME=/usr/local/src/scala/scala-2.11.5
export PATH=$SCALA_HOME/bin:$PATH

export SPARK_HOME=/usr/local/src/apache/spark.2.0.0/spark
export PATH=$SPARK_HOME/bin:$PATH

获取您的设置 . .bashrc

检查斯卡拉 scala-版本

确保 repl 启动 斯卡拉

如果您的排斥开始尝试再次启动您的火花外壳。 ./path/to/spark/bin/spark-shell

你应该得到 spark repl

【讨论】:

    【解决方案2】:

    你可以试试跑步

    spark-shell -usejavacp
    

    它不适用于我,但它确实适用于 Spark Issue 18778 描述中的某人。

    【讨论】:

      【解决方案3】:

      你安装了 scala 和 sbt 吗?
      日志说没有找到主类。

      【讨论】:

      • 你认为是sbt和scala没有放入PATH造成的吗?
      猜你喜欢
      • 2017-10-08
      • 1970-01-01
      • 2019-05-02
      • 1970-01-01
      • 2019-04-20
      • 2016-03-20
      • 1970-01-01
      • 1970-01-01
      • 2016-02-07
      相关资源
      最近更新 更多