- Spark SQL入門與實踐指南
- 紀涵
- 794字
- 2019-12-06 16:38:17
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后面跟配置屬性的鍵和值,詳情可參看下面的模板。
下面給出大體的模板:

注意:"\"反斜杠用于換行。
下面給出一個例子供讀者參考:

- Linux Mint System Administrator’s Beginner's Guide
- OpenStack for Architects
- 錯覺:AI 如何通過數據挖掘誤導我們
- Dreamweaver 8中文版商業案例精粹
- Docker Quick Start Guide
- VB語言程序設計
- iClone 4.31 3D Animation Beginner's Guide
- 21天學通Visual Basic
- 21天學通Java Web開發
- Learning C for Arduino
- JSP從入門到精通
- 工業機器人安裝與調試
- Silverlight 2完美征程
- Mastering MongoDB 3.x
- Spark大數據商業實戰三部曲:內核解密|商業案例|性能調優