【问题标题】:Can't run Spark spark-shell无法运行 Spark spark-shell
【发布时间】:2018-02-23 20:42:00
【问题描述】:

Cannot start spark-shell 帖子的信息无济于事

设置下一个环境:

java -版本 java版本“9.0.1” Java(TM) SE 运行时环境 (build 9.0.1+11) Java HotSpot(TM) 64 位服务器 VM(内部版本 9.0.1+11,混合模式)

Oracle Java 8、OpenJDK 8 也有错误

Scala 代码运行器版本 2.12.4 和版本 2.10 也出现错误

来自 apache.org 的 spark 二进制文件 spark-2.2.1-bin-hadoop2.6 Hadoop 版本是 2.6

JAVA_HOME=/usr/lib/jvm/java-9-oracle
env | grep spark
SPARK_HOME=/usr/local/spark
env | grep scala
SCALA_HOME=/usr/local/scala
env | grep hadoop
HADOOP_HOME=/usr/local/hadoop

PATH=/usr/lib/jvm/java-9-oracle/bin:
/usr/lib/jvm/java-9-oracle/db/bin:
/usr/local/scala/bin:/usr/local/spark/bin:
/usr/local/scala/bin

SPARK_DIST_CLASSPATH="$HADOOP_HOME/etc/hadoop/*:
$HADOOP_HOME/share/hadoop/common/lib/*:
$HADOOP_HOME/share/hadoop/common/*:$HADOOP_HOME/share/hadoop/hdfs/*:
$HADOOP_HOME/share/hadoop/hdfs/lib/*:$HADOOP_HOME/share/hadoop/hdfs/*:
$HADOOP_HOME/share/hadoop/yarn/lib/*:$HADOOP_HOME/share/hadoop/yarn/*:
$HADOOP_HOME/share/hadoop/mapreduce/lib/*:$HADOOP_HOME/share/hadoop/mapreduce/*:
$HADOOP_HOME/share/hadoop/tools/lib/*"    

运行火花:

spark-shell

输出:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/spark/jars/slf4j-log4j12-1.7.16.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Setting default log level to "WARN".

Failed to initialize compiler: object java.lang.Object 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 programmatically, settings.usejavacp.value = true.

Exception in thread "main" java.lang.NullPointerException
at scala.reflect.internal.SymbolTable.exitingPhase(SymbolTable.scala:256)
at scala.tools.nsc.interpreter.IMain$Request.x$20$lzycompute(IMain.scala:896)
at scala.tools.nsc.interpreter.IMain$Request.x$20(IMain.scala:895)
at scala.tools.nsc.interpreter.IMain$Request.headerPreamble$lzycompute(IMain.scala:895)

什么原因???

【问题讨论】:

  • 请修复代码块,明确您正在执行的命令以及输出的样子。

标签: apache-spark


【解决方案1】:

Spark 2.2.x 还不能与 Java 9 一起运行。更改您的配置以改用 Java 8。

设置:

JAVA_HOME=/usr/lib/jvm/java-8-oracle
PATH="$JAVA_HOME/bin:"$PATH

确保 Java 8 是默认版本:

sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javah

如果全部失败,请卸载 Java 9。

sudo apt-get purge oracle-java9-installer
sudo add-apt-repository --remove ppa:webupd8team/java

希望对你有帮助。

【讨论】:

    【解决方案2】:

    我同时安装了 java9 和 java8。简单地设置 JAVA_HOME 对我有用。

    我正在使用env JAVA_HOME=/usr/lib/jvm/java-8-openjdk/jre/ ./spark-shell(在 bash 中:JAVA_HOME=/usr/lib/jvm/java-8-openjdk/jre/ ./spark-shell)(Spark 2.2.1,scala 2.11.8)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-01
      • 2016-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多