本節書摘來自華章社區《Spark核心技術與高級應用》一書中的第3章,第3.2節構建Spark的開發環境,作者于俊 向海 代其鋒 馬海平,更多章節內容可以訪問云棲社區“華章社區”公眾號查看
3.2 構建Spark的開發環境
無論Windows或Linux操作系統,構建Spark開發環境的思路一致,基于Eclipse或Idea,通過Java、Scala或Python語言進行開發。安裝之前需要提前準備好JDK、Scala或Python環境,然后在Eclipse中下載安裝Scala或Python插件。
3.2.1 準備環境
準備環境包括JDK、Scala和Python的安裝。
1.安裝JDK
(1)下載JDK(1.7以上版本)
下載地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html。
(2)配置環境變量(以Windows為例)
新增JAVA_HOME變量,值:C:Program FilesJavajdk1.7.0_71。
新增CLASSPATH變量,值:.;%JAVA_HOME%lib。
增加PATH變量,補充;%JAVA_HOME%bin。
進入cmd界面測試JDK是否安裝成功。
C:\Users\admin>java -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)
2.安裝Scala
下載Scala(2.10以上版本),下載地址:http://www.scala-lang.org/download/。
安裝完畢配置環境變量,增加PATH變量,補充C:Program Files (x86)scalabin;。
進入cmd界面測試Scala是否安裝成功。
C:\Users\admin>scala
Welcome to Scala version 2.10.5 (Java HotSpot(TM) 64-Bit Server VM, Java 1.7.0_7
Type :help for more information.
3.安裝Python
下載Python,下載地址:https://www.python.org/downloads/。
安裝完畢配置環境變量,增加PATH變量,補充C:Python33;。
進入cmd界面測試Python是否安裝成功。
C:\Users\admin>python
Python 3.3.5 (v3.3.5:62cf4e77f785, Mar 9 2014, 10:37:12) [MSC v.1600 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
3.2.2 構建Spark的Eclipse開發環境
使用Eclipse進行Spark開發,需要安裝Scala和Python插件,安裝步驟如下:
1)安裝Eclipse,在官網下載Eclipse,解壓縮到本地后直接使用即可。
2)安裝Scala插件,打開Eclipse,依次選擇“Help”→“Install New Software…”,在選項里填入http://download.scala-ide.org/sdk/e38/scala210/stable/site/,并按回車鍵,如圖3-1所示,選擇Scala IDE for Eclipse和Scala IDE for Eclipse development support,完成Scala插件在Eclipse上的安裝。
3)安裝Python插件,與安裝Scala插件一樣,打開Eclipse,利用Eclipse Update Manager安裝PyDev。在Eclipse菜單欄中找到Help欄,選擇“Help”→“Install New Software”命令,在彈出的Install界面中點擊“Add”按鈕,會彈出“Add Repository”界面,在名稱項輸入PyDev;在鏈接里輸入地址,如https://dl.bintray.com/fabioz/pydev/all/,然后點擊“OK”按鈕。接下來,Eclipse的Update Manager將會在剛才輸入的站點中搜索安裝包,選中搜索出的結果PyDev,并點擊“Next”按鈕,等待一段時間,PyDev會安裝成功。

安裝完畢PyDev之后,配置Python/Jython解釋器,在Eclipse菜單欄中,選擇“Window”→
“Preferences”→“Pydev”→“Interpreter - (Python/Jython)”命令。
重啟Eclipse使安裝生效。
3.2.3 構建Spark的IntelliJ IDEA開發環境
除了使用Eclipse進行Spark程序開發之外,Spark支持的另外一種開發工具是IntelliJ IDEA;下載地址:http://www.jetbrains.com/idea/。
官方提供了Ultimate版和Community版可供選擇,主要區別如下:
1)Ultimate版功能齊全的IDE,支持Web和Enterprise,免費試用30天,由官方提供一個專有的開發工具集和架構支持。
2)Community版支持Java、Groovy、Scala、Android的開發,免費并且開源,由社區進行支持。
作者使用的版本是ideaIC-14.1.4,請選擇適合的操作系統進行安裝。
如何安裝IntelliJ IDEA?
Windows :直接運行.exe文件,按照向導步驟操作即可。
Mac OS X:打開.dmg包,并復制IntelliJ IDEA到應用文件夾。
Linux:解壓.tar.gz壓縮包,并運行bin/idea.sh(需要在環境變量PATH中加入IDEA目錄,并執行source命令使配置文件生效)。
根據實際需求,我們選擇Windows系統的Community版本進行Scala程序的開發。步驟包括:安裝Scala插件和創建項目并在IDEA中編寫Scala代碼。
1.?安裝Scala插件
①?運行IDEA并安裝和配置IDEA的Scala開發插件,啟動程序界面如圖3-2所示,此時需要選擇“Conf?igure”,然后進入IDEA的配置頁面。

③?點擊安裝界面左下角的“Install JetBrains plugin”選項,進入JetBrains插件選擇頁面,如圖3-4所示。

插件安裝完畢,重啟IDEA。
2.?創建項目并在IDEA中編寫Scala代碼
①?進入首頁(見圖3-2),選擇“Create New Project”命令,此時選擇左側列表中的“Scala”選項,為了方便以后的開發工作,選擇右側的“SBT”選項,如圖3-6所示。

③?由于在前面選擇了“SBT”選項,所以此時IDEA智能地構建SBT工具:點擊工程名稱“HelloSpark”,可以看到SBT自動創建的一些目錄,如圖3-8所示。
④?此時右擊src目錄下main中的scala,在彈出的“New”菜單下選擇“Scala Class”,在彈出的“Create New Scala Class”對話框中輸入文件名“HelloSpark”,把Kind選擇為“Object”,點擊“OK”按鈕完成,如圖3-9所示。

3.?加入Spark開發包
使用IDEA導入外部Jar包,具體步驟:“File”→“Project Structure”→“Modules”→“Dependencies”→+...→“Library...”→“Library Type(Java)”→“Select Library Files”→“Conf?igure Library”,以添加spark-assembly-1.5.0-hadoop2.3.0.jar為例,添加步驟如下:
①?點擊“File”,選擇“Project Structure”,如圖3-11所示。

④?通過“Select Library Files”,選擇“spark-assembly--.jar”,如圖3-14所示。
選擇完畢進行Spark開發包加載。
4.?JDK路徑錯誤處理
如果SBT出現如圖3-15提示,這是由于沒有設置Java的JDK路徑。
請點擊最右側的“Project Structure”,如圖3-16所示,進入視圖,并配置項目JDK。
選擇最左側的“Project”選項,并選擇“No SDK”的“New”如圖3-17所示,選擇項目JDK為1.7。

重啟IDEA,問題解決。
5.?SBT下載不完整問題處理
如果不能出現完整的SBT目錄,選擇“View”目錄的下拉菜單“Tool Windows”目錄,選擇“SBT”,如圖3-18所示。

如果完整目錄還是不可見,可以查看具體日志,然后將需要下載的sbt包下載下來,放到相應的目錄,一般是當前用戶的.ivy2目錄,然后刪除HelloSpark項目,重新建項目。
最終可以見到完整的SBT路徑。
6.?IDEA生成Jar包
使用IDEA編譯class文件,同時可以將class打包成Jar文件,方法如下:
①?選擇菜單“File”→“Project Structure”,彈出“Project Structure”的設置對話框;
②?選擇左邊的“Artifacts”,點擊上方的“+”按鈕;
③?在彈出的對話框中選擇“Jar”→“from moduls with dependencies”;
④?選擇要啟動的類,然后確定;
⑤?應用之后選擇菜單“Build”→“Build Artifacts”,選擇“Build”或者“Rebuild”后即可生成,生成的Jar文件位于工程項目目錄的out/artifacts下。