Spark 安装 - 错误:无法找到或加载主类 org.apache.spark.launcher.Main
Posted
技术标签:
【中文标题】Spark 安装 - 错误:无法找到或加载主类 org.apache.spark.launcher.Main【英文标题】:Spark installation - Error: Could not find or load main class org.apache.spark.launcher.Main 【发布时间】:2018-10-30 07:26:06 【问题描述】:安装 spark 2.3 并在 .bashrc 中设置以下环境变量(使用 gitbash)
HADOOP_HOME
SPARK_HOME
PYSPARK_PYTHON
JDK_HOME
执行 $SPARK_HOME/bin/spark-submit 显示以下错误。
错误:无法找到或加载主类 org.apache.spark.launcher.Main
我在 *** 和其他网站上做了一些研究检查,但无法找出问题所在。
执行环境
-
Windows 10 企业版
Spark 版本 - 2.3
Python 版本 - 3.6.4
你能提供一些指导吗?
【问题讨论】:
【参考方案1】:验证以下步骤:
-
spark-launcher_*.jar 存在于 $SPARK_HOME/jars 文件夹中吗?
分解 spark-launcher_*.jar 以验证您是否有 Main.class。
如果上述情况属实,那么您可能正在使用 cygwin 终端在 Windows 操作系统上运行 spark-submit。
尝试使用 spark-submit.cmd 代替,cygwin 也会解析 /c/ 之类的驱动器,这在 Windows 中不起作用,因此通过使用 'C:/' 限定环境变量来提供绝对路径很重要,而不是'/c/'。
【讨论】:
【参考方案2】:-
检查 Spark 主目录是否包含所有文件夹和文件(xml、jar 等),否则请安装 Spark。
检查您的 JAVA_HOME 和 SPARK_HOME 环境变量是否在您的 .bashrc 文件中设置,尝试设置以下内容:
导出 JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
导出 SPARK_HOME=/home/ubuntu-username/spark-2.4.8-bin-hadoop2.6/
或者你的 spark 下载到哪里
导出 SPARK_HOME=/home/Downloads/spark-2.4.8-bin-hadoop2.6/
完成后,保存 .bash 并在终端上运行 bash 命令或重新启动 shell 并尝试 spark-shell
【讨论】:
【参考方案3】:我收到了那个错误信息。它可能有几个根本原因,但这是我调查和解决问题的方式(在 linux 上):
不要启动spark-submit
,而是尝试使用bash -x spark-submit
来查看哪一行失败。
多次执行该过程(因为 spark-submit 调用嵌套脚本),直到找到调用的底层过程:在我的情况下类似于:
/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -cp '/opt/spark-2.2.0-bin-hadoop2.7/conf/:/opt/spark-2.2.0-bin-hadoop2.7/jars/*' -Xmx1g org.apache.spark.deploy.SparkSubmit --class org.apache.spark.repl.Main --name 'Spark shell' spark-shell
因此,spark-submit 启动了一个 java 进程,但使用 /opt/spark-2.2.0-bin-hadoop2.7/jars/*
中的文件找不到 org.apache.spark.launcher.Main 类(请参阅上面的 -cp 选项)。我在这个 jars 文件夹中做了一个 ls 并计算了 4 个文件而不是整个 spark 分发(约 200 个文件)。
这可能是安装过程中的一个问题。所以我重新安装了 spark,检查了 jar 文件夹,它就像一个魅力。
所以,你应该:
检查java
命令(cp 选项)
检查您的 jars 文件夹(它至少包含所有 spark-*.jar 吗?)
希望对你有帮助。
【讨论】:
以上是关于Spark 安装 - 错误:无法找到或加载主类 org.apache.spark.launcher.Main的主要内容,如果未能解决你的问题,请参考以下文章
颤振医生 --android-licenses 错误:无法找到或加载主类 Studio