我正在尝试在 D 驱动器上的 Windows x64 机器上安装 Spark 2.3.0。具体来说,我下载了 Spark 2.3.0 Hadoop 2.7。当我尝试运行时spark-shell
,我收到以下错误:
Error: Could not find or load main class org.apache.spark.launcher.Main
我尝试遵循几个安装指南,但似乎没有任何效果。java -version
给我:
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
此外,python
给出:
Python 3.6.5 |Anaconda custom (64-bit)| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] on win32
我已将以下内容添加到我的PATH
:
D:\Program Files (x86)\scala\bin
D:\ProgramData\spark-2.3.0-bin-hadoop2.7\bin
D:\Program Files\Java\jdk1.8.0_161\bin
C:\Users\USER\.windows-build-tools\python27\
D:\ProgramData\Anaconda3
JAVA_HOME
设置为D:\Program Files\Java\jdk1.8.0_161
。
最后,scala
运行良好,产生:
Welcome to Scala 2.12.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_161).
我在这里缺少什么吗?
任何帮助将非常感激!
编辑1:
添加的内容spark-2.3.0-bin-hadoop2.7/conf
:
编辑2:
感谢@cricket_007,他将我指向此处的 Medium 链接。我能到某个地方吗?以下是我根据那篇文章到目前为止所遵循的步骤(请注意,下面的相对链接是我系统中的绝对路径,我只是不想布置整个目录结构):
- 将 SPARK_HOME 变量设置为
spark-2.1.1-bin-hadoop2.7
文件夹的位置。 spark-shell
导致java.io.IOException
因为它未能在 hadoop 二进制路径中找到 winutils 二进制文件。- 下载
winutils.exe
Hadoop 2.7 并将其移至文件夹./winutils_hadoop/bin
。 - 添加
HADOOP_HOME
为系统级环境变量:./winutils_hadoop/
. - 添加
./winutils_hadoop/bin
到 PATH 变量。 - 创建目录
C:\tmp\hive
。 - 运行
winutils.exe chmod -R 777 C:\tmp\hive
。 spark-shell
现在应该可以工作了。
但是,这仍然会在运行时发出警告spark-shell
: WARN NativeCoderLoader:62 - Unable to load native-hadoop library for your platform... using builtin java classes where applicable
。
不仅如此,这些示例仍然无法正确运行。javac ./spark-2.3.0-bin-hadoop2.7/examples/src/main/java/org/apache/spark/examples/JavaWordCount.java
例如,运行会导致几个错误:
JavaWordCount.java:20: error: package scala does not exist
JavaWordCount.java:22: error: package org.apache.api.java does not exist
JavaWordCount.java:24: error: package org.apache.spark.sql does not exist
- 等等。
我难住了。