官术网_书友最值得收藏!

2.2 準備編寫Spark應用程序的IDEA環境

首先安裝IntelliJ IDEA的Community版本,這個版本是免費開源的(遵循Apache 2.0)。

 訪問IntelliJ IDEA的官方下載頁面(https://www.jetbrains.com/idea/download/),下載IntelliJ IDEA的Community版本,然后安裝。

 打開IDEA,并配置Java的JDK。

電腦上沒有JDK的讀者請先安裝Java的JDK,并配置Java環境變量。

JDK的下載地址為http://www.oracle.com/technetwork/java/javase/downloads/index.html。下載安裝完成之后,配置一下JAVA_HOME這個環境變量即可,如圖2-10、圖2-11所示。

圖2-10

圖2-11

在IDEA中安裝Scala插件,如圖2-12~圖2-14所示。

圖2-12

圖2-13

圖2-14

按照圖中的指示安裝完之后單擊Close按鈕回到plugin頁面后單擊OK按鈕。之后會提示重啟,如圖2-15所示。

圖2-15

重啟一下IDEA即可(單擊Restart按鈕)。

 創建Scala sbt項目,如圖2-16、圖2-17所示。

圖2-16

圖2-17

按照圖上的指示操作之后單擊Finish按鈕,然后就是一段長時間的等待,直到顯示在IDEA底部的任務完成(等待的時間長短和網速的快慢有關),如圖2-18所示。

圖2-18

 添加依賴。

訪問https://search.maven.org頁面。

這里可以進行Maven倉庫的搜索。

單擊ADVANCED SEARCH,如圖2-19所示。

圖2-19

訪問Spark的下載頁面ttps://spark.apache.org/downloads.html ,如圖2-20所示。

圖2-20

在之前的高級搜素界面中,對應填上相應的信息,如圖2-21所示。

圖2-21

搜索的結果如圖2-22所示。

圖2-22

然后按圖2-23中的指示操作查看SBT的依賴。

圖2-23

復制里面的內容(見圖2-24)。

圖2-24

如圖2-25所示,雙擊打開IDEA sparkapp項目里面的build.sbt文件。

圖2-25

將剛剛復制的內容粘貼到這個文件中,如圖2-26所示。

圖2-26

等待依賴刷新(等待IDEA界面下方任務欄的任務完成)。因為我們使用的是Spark SQL,所以我們還需要額外添加Spark SQL的依賴,如圖2-27所示。

圖2-27

同樣的,我們選擇Scala SBT項,如圖2-28所示。

圖2-28

復制如圖2-29所示的內容。

圖2-29

編輯build.sbt文件,如圖2-30所示。

圖2-30

等待依賴刷新完成。

 創建Scala文件。

創建Scala文件,如圖2-31所示。

圖2-31

在彈出來的提示框中填寫文件名,如圖2-32所示。

圖2-32

到此為止Spark程序的編寫環境就搭建好了。

如果在Windows環境下用IDEA編寫程序,那么在運行Spark代碼的時候會出現以下錯誤:

解決方法:

  • 需要在Windows中下載Hadoop以及配置Hadoop的環境變量。
  • 需要下載http://public-repo-1.hortonworks.com/hdp-win-alpha/ winutils.exe這個文件并將其放置到Hadoop根目錄下的bin文件夾中。其實,這個問題在Hadoop Wiki中已經給出了解決的辦法:https://wiki.apache.org/hadoop/ WindowsProblems。

2.3 將編寫好的Spark應用程序打包成jar提交到Spark上

當我們使用SBT建好項目并且編寫完程序之后,有時可能需要將其打包,我們可以使用IDEA內置的SBT將工程打包。

首先打開項目,將鼠標指針移到IDEA右下角的小方框圖案上,就會出現一個菜單,單擊SBT Shell,如圖2-33所示。

圖2-33

出現一個SBT Shell,在紅色箭頭處輸入命令,如圖2-34所示。

圖2-34

依次輸入clean命令,回車,清除已生成的文件。

然后輸入compile命令,回車,編譯文件,等待其編譯完成。

最后輸入package命令,回車,打包成jar。

打包好的文件在target目錄下的scala-2.11文件夾下。讀者可以到工程目錄下找到這個打包好的文件,如圖2-35所示。

圖2-35

下面我們來講一下如何使用spark-submit將打包好的jar提交到Spark上運行。

在Linux虛擬機中右擊虛擬機桌面,打開終端,在終端中輸入spark-submit--help,可以查看spark-submit的詳細幫助。

下面我們來說一下spark-submit的幾個常用選項。

(1)--class指向程序中的主類。例如:

(2)--master是指集群的master URL。

舉個例子,在本地運行就可以這樣寫:

使用這種方式由于是直接在本地運行的,并沒有提交到集群上,所以8080端口的Web UI中看不到提交的任務。

如果想在standalone模式下運行則可以這樣寫:

如果使用了mesos作為集群的資源管理器,則可以這樣寫:

如果使用了YARN作為集群的資源管理器,則可以這樣寫:

(3)--deploy-mode設置以什么模式運行,有cluster和client兩種,默認是client模式。

(4)--conf后面跟配置屬性的鍵和值,詳情可參看下面的模板。

下面給出大體的模板:

注意:"\"反斜杠用于換行。

下面給出一個例子供讀者參考:

主站蜘蛛池模板: 青海省| 古田县| 将乐县| 三原县| 尼木县| 社旗县| 克什克腾旗| 原平市| 韶关市| 句容市| 台中县| 霍城县| 洪泽县| 天全县| 尚志市| 广州市| 子长县| 阿鲁科尔沁旗| 东乡族自治县| 句容市| 昌乐县| 乡城县| 慈溪市| 那坡县| 屯门区| 牙克石市| 大足县| 昂仁县| 西城区| 鸡泽县| 万宁市| 沧源| 大厂| 巴彦淖尔市| 邻水| 云阳县| 淮阳县| 水城县| 晋江市| 迁西县| 镇安县|