Windows10安裝spark(包括hadoop安裝)
(作者:陳玓玏)
環境安裝
命令列中輸入java –version,看是否能正確輸出版本資訊,不能則需要安裝,可以自己搜尋一下Windows下java環境的安裝。
Scala安裝
Spark安裝
下載地址:http://spark.apache.org/downloads.html
我選擇的版本是spark-2.3.2-bin-hadoop2.7,下載後解壓,並把bin資料夾的路徑新增到環境變數的系統變數path中,如下:
此時即可使用spark,在命令列輸入spark-shell,結果如下:
(這個圖是另一個版本的,主要是為了說明沒安裝hadoop時候存在的問題)
這一步可能出現一個問題,就是報“此時不應有 java jdk1.8.0_152”的錯誤,可能是環境變數中JAVA_HOME有不可識別字符,考慮更換一下jdk檔案放置的路徑,比如我把jdk從C:\Program Files (X86)換到了C:\Program Files,然後對應地修改JAVA_HOME就可以正常輸入spark-shell了,最好是存放jdk的地址中都不要有空格。(參考文章:
此時的spark不是完整版的,因為還沒有安裝hadoop,所以是不能使用hadoop的功能,如果想要進一步提高使用效率,需要安裝hadoop。
安裝Hadoop
下載地址:http://hadoop.apache.org/releases.html
選擇一個版本的Hadoop下載到本地,並解壓,然後設定環境變數。這裡的環境變數有些不一樣,不僅要改path變數,還要新增一個HADOOP_HOME的變數。HADOOP_HOME設定為hadoop的根目錄C:\Program Files\hadoop-2.7.7,path中新增C:\Program Files\hadoop-2.7.7\bin。
$ls #檢視git路徑下有些什麼檔案
$cd winutils #開啟下載的winutils資料夾
$pwd #檢視資料夾的路徑
找到這個路徑後,在路徑下找到對應版本的hadoop資料夾下的bin資料夾,替換你所使用的hadoop的bin資料夾,然後安裝就完成了~
完成後輸入spark-shell結果如下:
就不會提示winutils不能執行了。
視覺化spark管理介面
輸入以下網址即可檢視:
使用pyspark互動
在命令列視窗中輸入pyspark即可,結果如下:
在anaconda中使用pyspark
開啟spyder,在選單欄中找到tools-PYTHONPATH_manager,新增spark下的python路徑和python/lib路徑,如下圖:
解壓python\lib路徑下的py4j-0.10.7-src.zip壓縮檔案到當前資料夾,否則會報找不到py4j的錯,然後重啟spyder即可使用。
在執行時如果報錯sc沒有被定義。
程式中要加入下面的一段即可。
from pyspark import SparkContext
from pyspark import SparkConf
conf = SparkConf().setAppName("test")
sc = SparkContext(conf=conf)