基於IDEA使用Spark API開發Spark程序

清明假期折騰了兩天,總結了兩種方式使用IDE進行spark程序,記錄一下:

第一種方法比較簡單,兩種方式都是採用SBT進行編譯的。

注意:本地不需要安裝Scala程序,否則在編譯程序時有版本兼容性問題。


一、基於Non-SBT方式


創建一個Scala IDEA工程

wKioL1Uw_W6RTtXzAADv8hogz8w055.jpg

我們使用Non-SBT的方式,點擊“Next”

wKioL1Uw_biRUEB1AAGcmEwvV7E233.jpg

命名工程,其他按照默認

wKiom1Uw_KDQYIGlAAGRVxi3MMs169.jpg

點擊“Finish”完成工程的創建

wKiom1Uw_NrBpqj5AAEQMJ0boUU026.jpg

修改項目的屬性

wKioL1Uw_lrSBokLAAIZ4fEOMCY459.jpg

首先修改Modules選項

wKiom1Uw_S2Br-RlAAGxDLlS1PE811.jpg

在src下創建兩個文件夾,並把其屬性改爲source

wKioL1Uw_q-STTmvAAIBzio05jU421.jpg

下面修改Libraries

wKiom1Uw_ZGgDh87AAGaa3ZcNZo061.jpg

將Spark開發需要的jar包導進來

wKioL1Uw_wOwSETZAAJWLRmQrpQ623.jpg

加入後:

wKioL1Uw_yLAeabkAAFXMb20-k8196.jpg

導入包完成後,在工程的scala下面創建一個package

wKioL1Uw_z_h2uTKAAGsxUhzL30651.jpg

創建一個Object對象

wKiom1Uw_grxuoo4AAGXviNcKQw217.jpg

構建Spark Driver代碼

wKiom1Uw_i-A-livAAG7j_bnMEs430.jpg

該程序是對搜狗日誌的處理代碼

接下來進行打包,使用Project Structure的Artifacts

wKioL1Uw_6ODQug7AAECG7Txdu8331.jpg

使用From modules with dependencies

wKiom1Uw_m7zsayvAADwz1cykkI686.jpg

wKioL1Uw_9mTLkG1AADiAufDfUA742.jpg

選擇Main Class

wKiom1Uw_qKgh1ixAADxuLhxrNI042.jpg

wKioL1UxABbgGWegAAFxfcRbbgg320.jpg

點擊“OK”

wKioL1UxADTgc021AAGxXZGxmuI537.jpg

把名稱改爲FirstSparkAppJar

wKiom1Uw_vzTmRrdAAJFnvfO97g915.jpg

因爲每臺機器上都安裝了Scala和Spark,所以可以把Scala和Spark相關的jar文件都刪掉

wKioL1UxAG2iD9sqAAFhP8reeY0753.jpg

接下來進行Build

wKiom1Uw_zihPn3dAAGI_9Z49rI498.jpg

選擇“Build Artifacts”

wKiom1Uw_1nAAaUxAAB1Rl4ca0w127.jpg

第一次選擇Build,以後同一個工程要選擇Rebuild,然後等待編譯完成

wKioL1UxAMuz2YFaAABtCTV6Y8o755.jpg

下面使用spark-submit運行程序

wKioL1UxAOPh4P5fAAEHPCkIfB4979.jpg

最後任務運行完成

wKiom1Uw_6uC3GgwAAX9_Yv1lcs243.jpg



二、基於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包:

wKioL1UxAYLCmfo4AAARGOs6v50207.jpg

默認jar包(.idea-build、.ivy2、.sbt)下載到C盤用戶目錄下

(注意:使用命令sbt進行下載時要確保網速,最好使用代理下載)


開發工具配置


1、IntelliJ IDEA開發配置:

(1) 下載Scala插件:選擇Configure下的Plugins進入下圖

wKioL1UxAfWj_cBXAAJ78Hyzj-4801.jpg選擇Install JetBrains plugin,搜索Scala進行下載。

(2) 創建基於SBT的Scala工程:

wKiom1UxAM_REor9AAFW7Qe8sfM628.jpg

(3) 設置工程名稱以及Scala和SBT版本:

wKioL1UxAlLyBEBJAAJAjXx9JUU478.jpg注意:

  1. 最好將Download兩個選項取消,否則會覆蓋之前用戶目錄下的SBTjar包,造成編譯不通過等錯誤

  2. SBT和Scala的版本號在C盤用戶目錄下可以看出:

    C:\Users\用戶\.sbt\boot\scala-2.10.4\org.scala-sbt\sbt\0.13.8

    這裏可以一次性設置正確,也可以後續修改配置文件(build.sbt修改scala版本,build.properties修改sbt版本)進行修改同步。

  3. 工程路徑不要使用中文,否則即使編譯成功打成jar包也無法執行。


(4) 基於SBT的Scala程序對工程的結構要求比較苛刻,需要建立如下目錄結構:

wKiom1UxAViwFAJRAAIvAPorWiY092.jpg

(5) 添加Spark插件:

wKioL1UxAs7DpdfGAAHq6NSZnQE567.jpg注意:同時該插件需要添加到lib目錄下(操作系統複製即可)


準備工作完成,下面進行Spark程序開發


編寫代碼

下面以類wordcount程序爲例:

編寫Spark程序:

wKioL1UxAxeQl_4FAAK1eT5vwAc317.jpg

請不要使用InteiiJ IDEA進行編譯(漢字導致後面編譯不過去)


編譯和執行

(1)使用SBT進行編譯和打包:

DOS下進入工程目錄下,使用sbt命令進行編譯和打包:

wKiom1UxAfXDk-EOAACqxPsUF6A456.jpg

wKiom1UxAgmTLLs3AADnj-Sjico004.jpg

默認打的jar在工程目錄test\target\scala-2.10下

(2)將jar包上傳到服務器執行:

使用命令:

spark-submit --class test--master yarn test_2.10-0.1-SNAPSHOT.jar 100

更多的參數詳見官方文檔

wKioL1UxA5zQQcPFAAMbGsPlGXU256.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章