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 安装

  • 为了便于代码补全,建议安装以下两个第三方包

# 安装ipython
pip3 install ipython -i https://pypi.doubanio.com/simple/
# 安装pyreadline
pip3 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。

Windows 10 下单机 Spark 环境搭建

  • 配置环境变量

SPARK_HOME: D:/spark/spark-2.3.2-bin-hadoop2.7
PATH: 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.7
PATH: 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.7
Subversion Unknown -r c1aad84bd27cd79c3d1a7dd58202a8c3ee1ed3ac
Compiled by stevel on 2018-07-18T22:47Z
Compiled with protoc 2.5.0
From source with checksum 792e15d20b12c74bd6f19a1fb886490
This 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, SparkContext

conf = 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 ***

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/opensource/191236.html

(0)
上一篇 2021年11月14日 15:18
下一篇 2021年11月14日 15:18

相关推荐

发表回复

登录后才能评论