清明假期折騰了兩天,總結了兩種方式使用IDE進行spark程序,記錄一下:
第一種方法比較簡單,兩種方式都是採用SBT進行編譯的。
注意:本地不需要安裝Scala程序,否則在編譯程序時有版本兼容性問題。
一、基於Non-SBT方式
創建一個Scala IDEA工程
我們使用Non-SBT的方式,點擊“Next”
命名工程,其他按照默認
點擊“Finish”完成工程的創建
修改項目的屬性
首先修改Modules選項
在src下創建兩個文件夾,並把其屬性改爲source
下面修改Libraries
將Spark開發需要的jar包導進來
加入後:
導入包完成後,在工程的scala下面創建一個package
創建一個Object對象
構建Spark Driver代碼
該程序是對搜狗日誌的處理代碼
接下來進行打包,使用Project Structure的Artifacts
使用From modules with dependencies
選擇Main Class
點擊“OK”
把名稱改爲FirstSparkAppJar
因爲每臺機器上都安裝了Scala和Spark,所以可以把Scala和Spark相關的jar文件都刪掉
接下來進行Build
選擇“Build Artifacts”
第一次選擇Build,以後同一個工程要選擇Rebuild,然後等待編譯完成
下面使用spark-submit運行程序
最後任務運行完成
二、基於SBT方式
開發工具下載
Spark開發需要以下開發編譯工具:
1、Scala IDE:本文以IntelliJ IDEA爲例進行開發,下載地址:
https://www.jetbrains.com/idea/download/
2、SBT(Simple Build Tool)編譯工具下載:
http://www.scala-sbt.org/download.html
下載安裝後,在DOS下執行sbt命令下載其所需要的jar包:
默認jar包(.idea-build、.ivy2、.sbt)下載到C盤用戶目錄下
(注意:使用命令sbt進行下載時要確保網速,最好使用代理下載)
開發工具配置
1、IntelliJ IDEA開發配置:
(1) 下載Scala插件:選擇Configure下的Plugins進入下圖
選擇Install JetBrains plugin,搜索Scala進行下載。
(2) 創建基於SBT的Scala工程:
(3) 設置工程名稱以及Scala和SBT版本:
最好將Download兩個選項取消,否則會覆蓋之前用戶目錄下的SBTjar包,造成編譯不通過等錯誤
SBT和Scala的版本號在C盤用戶目錄下可以看出:
C:\Users\用戶\.sbt\boot\scala-2.10.4\org.scala-sbt\sbt\0.13.8
這裏可以一次性設置正確,也可以後續修改配置文件(build.sbt修改scala版本,build.properties修改sbt版本)進行修改同步。
工程路徑不要使用中文,否則即使編譯成功打成jar包也無法執行。
(4) 基於SBT的Scala程序對工程的結構要求比較苛刻,需要建立如下目錄結構:
(5) 添加Spark插件:
準備工作完成,下面進行Spark程序開發
編寫代碼
下面以類wordcount程序爲例:
編寫Spark程序:
請不要使用InteiiJ IDEA進行編譯(漢字導致後面編譯不過去)
編譯和執行
(1)使用SBT進行編譯和打包:
DOS下進入工程目錄下,使用sbt命令進行編譯和打包:
默認打的jar在工程目錄test\target\scala-2.10下
(2)將jar包上傳到服務器執行:
使用命令:
spark-submit --class test--master yarn test_2.10-0.1-SNAPSHOT.jar 100
更多的參數詳見官方文檔