Windows 10 下单机 Spark 环境搭建
【目的】
Windows 10 裸机搭建 Spark 环境,使能运行 PySpark Shell。
【原料】
Windows 10 x64
jdk-8u162-windows-x64.exe
python-3.6.7-amd64.exe
spark-2.3.2-bin-hadoop2.7.tgz
hadoop-2.7.7.tar.gz
winutils.exe
【安装 JDK】
双击 jdk-8u162-windows-x64.exe 安装,后续基本上就是一路"next"。
配置环境变量
# 可通过 echo %JAVA_HOME% 检验JAVA_HOME: C:\Program Files\Java\jdk1.8.0_162# 可通过 echo %CLASS_PATH% 检验CLASS_PATH: C:\Program Files\Java\jdk1.8.0_162\lib# 可通过 echo %PATH% 检验Path: C:\Program Files\Java\jdk1.8.0_162\bin
【安装 Python3】
双击 python-3.6.7-amd64.exe 安装
为了便于代码补全,建议安装以下两个第三方包
# 安装ipythonpip3 install ipython -i https://pypi.doubanio.com/simple/# 安装pyreadlinepip3 install pyreadline -i https://pypi.doubanio.com/simple/
【安装 Spark】
到 http://spark.apache.org/downloads.html 下载 spark-2.3.2-bin-hadoop2.7.tgz 并解压,walker 解压到了 D:\spark 目录。
到这里,pyspark 已经可以运行了,但会提示找不到 winutils.exe。
配置环境变量
SPARK_HOME: D:\spark\spark-2.3.2-bin-hadoop2.7PATH: D:\spark\spark-2.3.2-bin-hadoop2.7\bin
【安装 Hadoop】
到 https://archive.apache.org/dist/hadoop/common/hadoop-2.7.7/ 下载 hadoop-2.7.7.tar.gz 并解压。如果报错"Can not create symbolic link : 客户端没有所需特权。",以管理员身份运行解压软件后解压即可。
配置环境变量
HADOOP_HOME: D:\spark\hadoop-2.7.7PATH: D:\spark\hadoop-2.7.7\bin
修改 D:\spark\hadoop-2.7.7\etc\hadoop\文件,否则可能报类似这种错误"Error: JAVA_HOME is incorrectly set. Please update F:\hadoop\conf\hadoop-env.cmd"
# 因为 JAVA_HOME 环境变量有空格,所以做如下修改set JAVA_HOME=%JAVA_HOME%# --->>>set JAVA_HOME=C:\PROGRA~1\Java\\jdk1.8.0_162
开 cmd 输入 hadoop version,有如下输出即正常
Hadoop 2.7.7Subversion Unknown -r c1aad84bd27cd79c3d1a7dd58202a8c3ee1ed3acCompiled by stevel on 2018-07-18T22:47ZCompiled with protoc 2.5.0From source with checksum 792e15d20b12c74bd6f19a1fb886490This command was run using /D:/spark/hadoop-2.7.7/share/hadoop/common/hadoop-common-2.7.7.jar
【winutils.exe】
到 https://github.com/steveloughran/winutils 下载对应版本的 winutils.exe,放入 D:\spark\hadoop-2.7.7\bin。
【Python 脚本测试】
脚本如下(t.py)
from pyspark import SparkConf, SparkContextconf = SparkConf().setMaster("local").setAppName("My App")sc = SparkContext(conf = conf)print('***************************** %s' % sc.appName)sc.stop()
用 spark-submit t.py 命令运行脚本,包含如下输出即正确。
***************************** My App
【FAQ】
报错 ModuleNotFoundError: No module named 'resource'
可能你用的 spark 版本对 Windows 10 太新了,换成 Spark 2.3.2 或以下的版本即可。
【相关阅读】
windows10上配置pyspark工作环境
*** walker ***