您好,登錄后才能下訂單哦!
【目的】
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。
配置環境變量
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 ***
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。