原文鏈接:https://mp.weixin.qq.com/s/mUUKO-oCsy_xxi7dQduhwg
准備工作
-
查看操作系統的版本信息:計算機>>右鍵“屬性”>>查看版本信息,如Windows10專業版64位。
1
安裝Anaconda
1.1 下載
-
注意選擇與操作系統匹配的版本,截止寫本教程時,官方版本為Anaconda5.0.1,內部封裝的為Python3.6,也可根據需要下載封裝其他版本Python的Anaconda3
-
下載地址為:https://www.anaconda.com/download/
1.2 安裝
-
根據安裝向導逐步進行,注意安裝路徑中的文件夾名稱不要存在空格
1.3 配置環境變量
-
配置系統變量PATH,添加…\Anaconda3\Scripts及…\Anaconda3(根據安裝路徑確定)
【注意】此圖PATH變量中也顯示了后續安裝過程中添加的信息
1.4 測試
-
測試Python:在cmd中輸入Python命令,查看Python版本信息
-
測試Conda:在cmd中輸入conda或pip命令,查看具體信息
2
安裝Java
2.1 下載
-
下載JDK8,選擇與操作系統匹配的版本,注意勾選同意其使用協議后下載
-
下載地址為:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2.2 配置環境變量
-
新建系統變量JAVA_HOME,值為Java安裝路徑
-
新建系統變量CLASSPATH,值為“.%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”(注意最前面的圓點)
-
配置系統變量PATH,添加%JAVA_HOME%\bin及%JAVA_HOME%\jre\bin
2.3 測試
-
在cmd中輸入java –version命令,查看Java版本信息
3
安裝Spark
3.1 下載
-
下載Spark2.2.0,注意與操作系統版本一致
-
下載地址為:http://spark.apache.org/downloads.html
3.2 安裝
-
只需解壓程序包,並拷貝至存放路徑,注意安裝路徑中的文件夾名稱不要存在空格
3.3 配置環境變量
-
新建系統變量SPARK_HOME,值為Spark安裝路徑
-
配置系統變量PATH,添加%SPARK_HOME%\bin及%SPARK_HOME%\sbin
3.4 配置日志顯示級別
-
選擇…\spark\conf\目錄下log4j.properties.template,復制為log4j.properties
-
將log4j.properties中,"INFO, console"改為"WARN, console"
4
配置Hadoop支持模塊
4.1 下載
-
下載Hadoop支持模塊
-
下載地址為:https://github.com/LemenChao/Introduction-to-Data-Science/blob/master/Hadoop/hadoop.dll-and-winutils.exe-for-hadoop2.7.3-on-windows_X64-master.zip
4.2 安裝
-
只需解壓程序包,並拷貝至存放路徑,注意安裝路徑中的文件夾名稱不要存在空格
4.3 配置環境變量
-
新建系統變量HADOOP_HOME,值為Hadoop安裝路徑
-
配置系統變量PATH,添加%HADOOP_HOME%\bin
5
測試Spark
5.1 測試spark
-
在cmd中輸入spark-shell,查看Spark版本信息
5.2 測試pyspark
-
在cmd中輸入pyspark,查看Pyspark版本信息
6
運行示例代碼
6.1 將...\spark\python\pyspark文件夾拷貝至...\Anaconda3\Lib\site-packages文件夾下(注意安裝路徑)
6.2 安裝python的py4j庫,Py4j可以使運行於python解釋器的python程序動態的訪問java虛擬機中的java對象。
6.3 運行示例代碼
個人執行過程排錯
1.win10 命令提示符cmd不是內部或外部命令的解決方法
在系統環境變量path添加:
- %SystemRoot%\system32
- %SystemRoot%
- %SystemRoot%\System32\Wbem
- %SystemRoot%\System32\WindowsPowerShell\v1.0
2.Exception: Java gateway process exited before sending its port number
確保你前面的配置都沒有錯。java、spark、Hadoop都配置成功,我自己的問題是因為運行程序的python環境沒有被添加到系統變量里去。
3.py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM
在最開頭添加這兩行代碼:
import findspark findspark.init()
完整測試程序如下:
import findspark findspark.init() from pyspark import SparkContext from pyspark import SparkConf conf = SparkConf().setAppName("miniProject").setMaster("local[*]") sc=SparkContext.getOrCreate(conf) rdd=sc.parallelize([1,2,3,4,5]) rdd1=rdd.map(lambda r:r+10) print(rdd1.collect())