WINDOWS 10環境下的Pyspark配置 (基於Anaconda環境,附加不重啟情況下環境變數Path修改方式)
4 人贊了文章
由於需要幫老婆完成課程作業,在ubuntu和win 10上都做了spark環境的配置,其中ubuntu環境的配置比較簡單,網上教程也較多,但是win 10系統的教程中,往往忽略了很多問題,因此以下對win環境中的配置做一總結。
環境配置過程主要包括:
- Python
- JAVA (JDK)
- Spark
- Scala
- Hadoop
- 環境變數的設置
- PySpark
Python
本文使用的python環境為Anaconda環境,主要考慮的是Anaconda的集成度比較好。下載地址為:Anaconda,外網下載比較慢的話推薦:清華鏡像。建議安裝中將Python路徑添加入Path。
JDK
JAVA的配置基本可以參照Spark在Windows下的環境搭建這篇博客。JAVA下載地址為:JAVA。
極為重要的一個點,一定不要安裝最新的10.0.1,會導致後續的scala和spark都無法正常使用。目前我安裝的版本為:Java SE Development Kit 8u171,後續安裝中未出現其他問題。
安裝後,記錄安裝目錄(例如默認路徑 C:Program FilesJavajdk1.8.0_171),後續環境變數設置部分需要用到。
Spark
Spark的安裝非常簡單,只需要把所用的程序下載下來解壓即可。程序地址:Spark
需要注意的是,Spark的不同版本要求了不同的Scala和Hadoop版本,如上圖所示,這個版本的Spark要求的Scala為大於2.10版本(推薦2.11),Hadoop版本為2.7以上。後續安裝中需要注意。
Scala
從官方網址下載安裝包:Scala,所選版本需和Spark對應。本人所選版本為Scala 2.11,win下的Scala需要選擇Scala binaries for windows.
Hadoop
個人發現,如果不安裝Hadoop,運行中會發生各種莫名其妙的錯誤,因此推薦配置。軟體版本根據Spark來定,下載地址為:Hadoop。本人所選版本為2.7.1,選擇已經編譯好的版本。
下載完成解壓後,需要添加winutils.exe文件,否則運行中會報錯找不到該文件。網上已經有編譯好的文件,地址為:github_winutils,根據自己的Hadoop版本下載,然後放入Hadoop解壓後的bin文件中即可。
根據網上的大部分教程,這裡提示需要對該文件進行許可權修改,但是這一步在我自己使用過程中一直無法通過,並且後續的操作中發現也並無影響,因此可以考慮不進行許可權修改。
環境變數的設置
在完成上述的所有安裝後,我們統一進行環境變數的配置。注意,以下修改的都是「系統變數」,非用戶變數。
Python
Anaconda安裝中已經自動配置。
JAVA
在系統變數中加入JAVA_HOME,路徑設置為:
C:Program FilesJavajdk1.8.0_171
在系統變數中加入CLASSPATH (重要),路徑設置為:
%JAVA_HOME%lib
不添加這一步,後續使用中會提示需要的庫函數未找到。
在Path中添加:
%JAVA_HOME%in
Scala
安裝中已經自動配置,如果沒有,將Scala的bin文件添加入Path中。
Hadoop
在系統變數中加入HADOOP_HOME,路徑設置為解壓後的Hadoop路徑。
在Path中添加:
%HADOOP_HOME%in
Spark
在系統變數中加入SPARK_HOME,路徑設置為解壓後的Spark路徑。
在Path中添加:
%SPARK_HOME%in%SPARK_HOME%sbin
所有環境配置完以後,可以通過重啟來使得系統環境變數激活。這裡介紹一種更為簡單的操作,首先在Powershell中運行
set PATH=C:
關閉該窗口,在新窗口中運行
echo %PATH%
系統變數即生效。該操作不改變系統環境變數,省去了關機的時間。(原理請參照其他博客。)
在完成所有環境變數配置後,可以在Powershell中運行spark-shell,顯示如下界面:
運行pyspark,顯示如下界面:
即表明基本配置成功。
PySpark
由於希望在python環境中可以直接通過import pyspark的形式使用,因此,我們通過如下的方式來讓python「找到」spark。
首先,通過pip命令安裝findspark:
pip install findspark
然後在所需程序中執行
import findsparkfindspark.init()
即可順利import pyspark。
最後,祝大家期末愉快!
推薦閱讀: