本文主要記錄windows系統上安裝spark,scala,和intelj IDEA,並實現本地spark運行。同時介紹了利用maven構建工具對spark工程構建的方法。本地運行需要本地安裝scala,spark,hadoop。而如果利用maven構建工具則只需要再maven的pom.xml配置好需要的scala,spark,hadoop版本信息,構建時自動導入相應依賴,常用於企業級的項目開發中。
一,安裝篇
這部分介紹常規spark本地運行的必要軟件安裝。而如果你使用的是Maven構建工具,那么下面的步驟3,4,5都可以略過(由maven根據配置文件自動構建),我們只用安裝最基本的1,2以及6環境變量中與JAVA相關的部分。maven安裝見本節7。
本地安裝部分更詳細的可以參考:https://blog.csdn.net/u011513853/article/details/52865076
1,安裝jdk,需要是jdk8(也被稱為jdk1.8)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
環境變量:
創建JAVA_HOME:C:\Program Files\Java\jdk1.8.0_181
創建CLASSPATH:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(前面有個點號)
Path添加:%JAVA_HOME%\bin;
測試是否安裝成功:打開cmd命令行,輸入java -version
2,安裝intelj IDEA並配置scala插件
https://www.jetbrains.com/idea/
IDEA安裝完成后,安裝scala插件:啟動intelj -> 點擊啟動頁configuration -> Plugins,或者file->setting->Plugins,搜索scala並安裝插件。如果搜不到,可能是需要代理:Install JetBrains plugin... -> HTTP Proxy Settings設置代理。
安裝完成后要重啟IDEA。
3,安裝spark
下載后解壓到指定目錄即可,這里我們選擇2.4.5 版本
http://spark.apache.org/downloads.html
環境變量:
創建SPARK_HOME:D:\spark-2.4.5-bin-hadoop2.7
Path添加:%SPARK_HOME%\bin
測試是否安裝成功:打開cmd命令行,輸入spark-shell
spark-shell時報錯:error not found:value sqlContext。參考:https://www.liyang.site/2017/04/19/20170419-spark-error-01/
4,安裝Hadoop
說明:如果你只是玩Spark On Standalone的話,就不需要安裝hadoop,如果你想玩Spark On Yarn或者是需要去hdfs取數據的話,就應該先裝hadoop。關於spark和hadoop的關系,強烈推薦這篇博客:Spark是否會替代Hadoop?
安裝上面spark對應版本的hadoop 2.7:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz
解壓到指定目錄即可。
環境變量:
創建HADOOP_HOME:D:\hadoop-2.7.7
Path添加:%HADOOP_HOME%\bin
測試是否安裝成功:打開cmd命令行,輸入hadoop
hadoop測試時報錯:Error: JAVA_HOME is incorrectly set。參考:https://blog.csdn.net/qq_24125575/article/details/76186309
打開E:\hadoop-2.7.3\etc\hadoop\hadoop-env.cmd(你的文件在哪就去哪找)
原來是配置文件的問題,我的JAVA_HOME目錄是C:\Program Files\Java\jdk1.8.0_121,因為Program Files中存在空格,所以出現錯誤,只需要用
PROGRA~1代替Program Files即可,即改為C:\PROGRA~1\Java\jdk1.8.0_121,當然,你也可以講jdk裝到根目錄或者不存在空格等目錄下。
5,安裝scala SDK
其版本應與上面spark/jars/中scala版本一致,2.2.0版本spark對應的scala版本位2.11.8,https://www.scala-lang.org/download/2.11.8.html
上面鏈接中提到了多種scala的安裝方式,比較省事的是通過已經安裝好scala插件的intelj IDEA安裝scala SDK(注意區分插件和SDK):File => New => Project,選擇scala,輸入工程名,如果是第一次新建scala工程,會有一個scala SDK的Create按鈕,然后選擇需要的版本安裝。
而我使用的是安裝包安裝方式:
環境變量:
創建SCALA_HOME: C:\Program Files (x86)\scala
Path添加:;%SCALA_HOME%\bin; %JAVA_HOME%\bin;;%HADOOP_HOME%\bin
測試是否安裝成功:打開cmd命令行,輸入scala
7,maven構建工具安裝(如果不用maven構建工具,不用裝)
http://maven.apache.org/download.cgi
也是下載后解壓即可。
環境變量:
MAVEN_HOME = D:\apache-maven-3.5.4
MAVEN_OPTS = -Xms128m -Xmx512m
path添加:%MAVEN_HOME%\bin
測試是否安裝成功:打開cmd,輸入mvn help:system
8. 問題解決:
spark-shell命令報錯:
關於 winutils.exe 文件:下載路徑:https://github.com/cdarlint/winutils 碼雲: https://gitee.com/leolzi/winutils
下載下來后找到對應的bin 下的文件拷貝進去