在 Ubuntu 20.04 上使用 Hadoop 进行新 Spark 设置后无法运行 spark-shell 命令

Posted

技术标签:

【中文标题】在 Ubuntu 20.04 上使用 Hadoop 进行新 Spark 设置后无法运行 spark-shell 命令【英文标题】:Unable to run spark-shell command after new Spark setup with Hadoop on Ubuntu 20.04 【发布时间】:2020-05-17 13:42:48 【问题描述】:

我试图在安装后运行 Spark,但命令“spark-shell”给出了错误:

无法找到或加载主类版本。

我试图通过以各种(可能是矛盾的)方式设置我的 JAVA_HOME 来解决这个问题。我还设置了 SCALA_HOME 并编辑了 spark-env.sh。我可以采取哪些步骤来解决此问题?

类似于:

这个question2 (我使用的是 Ubuntu 20.04,上面的问题是针对 Windows 的,这个问题是关于 spark-submit 而不是 spark-shell 命令)和这个question:(这个错误与我的不同但相似)

版本信息: 我正在使用 Ubuntu 20.04 Hadoop版本:2.10.0 Spark 版本:spark-2.4.5-bin-without-hadoop-scala-2.12 Scala 版本:2.11.12(以前我尝试过 scala 2.12,因为我认为它兼容) Java版本:openjdk版本1.8.0_252, 运行时:构建 1.8.0_252-8u252-b09-1ubuntu1-b09 openJDK 64 位服务器 VM(内部版本 25.252-b09,混合模式) javac 1.8.0_252

我已采取的步骤的详细信息:

我已经安装了 Hadoop(将程序文件提取到 usr/hadoop,配置了 namenode 和 datanode,设置了 javapath)、Java 1.8 和 scala。 Hadoop 工作正常。我可以在浏览器和 hadoop 作业中看到 namenode。

我已经安装了 Spark(将程序文件解压到 usr/Spark)。

在 spark-env.sh 我设置了:

export HADOOP_CONF_DIR=/home/sperling/hadoop/hadoop-2.10.0,
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre

在 bashrc 中我设置了:

export SCALA_HOME=/usr/share/scala export HADOOP_HOME=/home/sperling/hadoop/hadoop-2.10.0 export SPARK_HOME=/home/sperling/spark export PATH=$PATH:/home/sperling/spark/bin

在我设置的 etc/environment 中:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

我不知道下一步该尝试什么,因为 Spark 似乎无法找到 Java 或 Scala,但是当我在终端中键入 echo $JAVA_HOME 和 echo $SCALA_HOME 时它们会出现。

【问题讨论】:

【参考方案1】:

Spark 版本:spark-2.4.5-bin-without-hadoop-scala-2.12

这意味着 Spark 是使用 Scala 2.12 预构建的或期待 Scala 2.12 我认为您无法使用 Scala 2.11 运行它

从我在 Spark 兼容性页面上看到的内容来看,Spark 2.4.5 是预构建的 Hadoop 2.7.x 或 Hadoop 3.2.x

https://spark.apache.org/downloads.html

我建议要么尝试使用他们推荐的 Hadoop 版本之一,要么安装 Hadoop 3.2.x+

【讨论】:

谢谢。我尝试使用 Scala 2.12.10 并遇到同样的问题。我将为 Hadoop 2.7 安装 Hadoop 2.7 和 Spark 2.4.5 并报告。我将使用 Scala 2.11 和 Java 8。这听起来正确吗? 这应该可行,我已经看到 Scala 2.11 和 Scala 2.12 都启动并运行了相同的配置 我的最终工作配置是:Scala 2.12.11、Hadoop 3.2.1 和 Spark 3.0.0 预览版 2。我使用的说明在这里:[链接] (linuxconfig.org/ubuntu-20-04-hadoop)。这是写这个的正确地方吗?

以上是关于在 Ubuntu 20.04 上使用 Hadoop 进行新 Spark 设置后无法运行 spark-shell 命令的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu20.04安装MySQL及配置MySQL workbench

Ubuntu20.04安装MySQL及配置MySQL workbench

无法在 Ubuntu 20.04 上安装 ROS Melodic

在 Ubuntu 20.04 上使用远程证书的 Nuget 包还原失败无效

我应该如何在 Ubuntu 20.04 LTS 上安装 Django

在 Ubuntu 20.04 LTS(Vmware)上安装 docker 失败