背景#
Apache Spark已逐漸成為下一代大數(shù)據(jù)處理工具的典范,它利用內(nèi)存來處理數(shù)據(jù),因而其處理速度遠(yuǎn)超Hadoop的MapReduce。
江湖傳言,大數(shù)據(jù)工程師錢途無量,不少java開發(fā)工程師將目光投向了大數(shù)據(jù)開發(fā)工程師,有意轉(zhuǎn)型成為“玩數(shù)據(jù)”的人,在未來從事海量數(shù)據(jù)的處理、分析、統(tǒng)計(jì)、挖掘等相關(guān)工作。
spark方向大數(shù)據(jù)開發(fā)工程師入門的第一步是搭建開發(fā)環(huán)境,本文講述64位win7操作系統(tǒng)下基于eclipse的spark開發(fā)環(huán)境搭建。
步驟概覽#
- jdk1.8下載和安裝
- eclipse4.7下載和安裝
- scala IDE插件下載和安裝
- spark下載和配置
- hadoop下載和配置
- Spark示例運(yùn)行
操作指南#
1、 jdk1.8下載和安裝##
eclipse4.7(oxygen)要求的JRE/JDK版本最低為1.8。
1)打開JDK8u131下載頁面(下載地址如下):
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2)點(diǎn)選【Accept License Agreement 】,下載獲得安裝文件jdk-8u131-windows-x64.exe。
3)雙擊執(zhí)行jdk-8u131-windows-x64.exe可直接安裝JDK1.8,也可以參考下述步驟制作綠色版放置在本機(jī)目錄(例:D:\Java\jdk1.8.0_131)
- 鼠標(biāo)右擊jdk-8u131-windows-x64.exe,解壓安裝包文件到本機(jī)目錄(例:E:\jdk-8u131-windows-x64)
- 打開命令提示符,切換到【E:\jdk-8u131-windows-x64.rsrc\1033\JAVA_CAB10】 目錄下,執(zhí)行【extrac32 111】命令。
E:
cd E:\jdk-8u131-windows-x64\.rsrc\1033\JAVA_CAB10
extrac32 111
- 將【E:\jdk-8u131-windows-x64.rsrc\1033\JAVA_CAB10】目錄下生成的【tools.zip】文件解壓到【E:\jdk-8u131-windows-x64.rsrc\1033\JAVA_CAB10\tools】目錄,在命令提示符中切換到該目錄,執(zhí)行下述命令創(chuàng)建jar包:
for /r %x in (*.pack) do .\bin\unpack200 -r "%x" "%~dx%~px%~nx.jar"
- 大功告成,【E:\jdk-8u131-windows-x64.rsrc\1033\JAVA_CAB10\tools】目錄就是你想要的綠色版jdk。
4)配置環(huán)境變量
- 新增環(huán)境變量【JAVA_HOME】指向jdk目錄(例:D:\Java\jdk1.8.0_131)
- 新增環(huán)境變量【CLASSPATH】,設(shè)置變量值為【.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar】
- 修改環(huán)境變量【PATH】,在變量值末尾追加【;%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;】
5)校驗(yàn)JDK環(huán)境
打開命令提示符,輸入【Java -version】,正常顯示jdk版本號(hào)代表jdk安裝配置成功。

2. eclipse4.7下載和安裝
1)打開eclipse官網(wǎng)下載頁面:
https://www.eclipse.org/downloads/eclipse-packages/

2)下載【Eclipse IDE for Java EE Developers】的window 64版,獲得【 eclipse-jee-oxygen-R-win32-x86_64.zip】。
3)解壓【eclipse-jee-oxygen-R-win32-x86_64.zip】到本機(jī)目錄(例:D:\Java\eclipse-jee-oxygen-R-win32-x86_64)
4)打開【D:\Java\eclipse-jee-oxygen-R-win32-x86_64\eclipse】目錄下的【eclipse.ini】配置文件,在末尾另起一行添加下述配置:
-Dfile.encoding=utf-8
3. scala IDE插件下載和安裝
spark采用scala作為默認(rèn)編程語言,所以需要為eclipse安裝 scala IDE插件。
1)打開scala IDE插件下載頁面
http://scala-ide.org/download/prev-stable.html

2)由于Spark2.1.1基于Scala2.11.8編譯,這里選擇Scala IDE4.5.0對應(yīng)的zipfile,獲得【base-20161213-1347.zip】,解壓到本機(jī)目錄(例:D:\java\Scala-IDE-211-update-site)。
3)啟動(dòng)eclipse4.7,指定一個(gè)workspace(例:D:\java\eclipse-workspace),進(jìn)入Eclipse主界面。
4)通過【help-->Install New Software...】打開插件安裝頁,點(diǎn)擊【Add】按鈕添加Scala IDE插件對應(yīng)的Repository(通過【Local...】按鈕指向目錄【D:\java\Scala-IDE-211-update-site\base】),確定后返回。

5)勾選【Scala IDE for Eclipse】、【Scala IDE for Eclipse Development Support】、【Scala IDE for Eclipse Source Feature】,點(diǎn)擊【Next】按鈕完成安裝并根據(jù)提示重啟Eclipse。

6)Eclipse重啟后,通過【W(wǎng)indow --> Perspective --> Open Perspective --> Other...】打開Scala開發(fā)透視圖。
4. spark下載和配置
Spark官方網(wǎng)站針對多個(gè)Hadoop版本提供不同的預(yù)編譯版,此處選擇最新版(搭載Hadoop2.7的Spark2.1.1)。
1)打開Spark下載頁面
https://spark.apache.org/downloads.html

2)下載獲得【spark-2.1.1-bin-hadoop2.7.tgz】,解壓到本機(jī)目錄(例:D:\java\spark-2.1.1-bin-hadoop2.7)。
3)在Eclipse工作空間(workspace),通過【W(wǎng)indow --> Preferences】打開首選項(xiàng)配置頁,切換到【Java --> Build Path --> User Libraries】,為Spark2.1.1創(chuàng)建User Library。

4)通過【Add External JARs...】按鈕,將Spark2.1.1相關(guān)jar包(目錄【D:\java\spark-2.1.1-bin-hadoop2.7\jars】中除【scala-compiler-2.11.8.jar】、【scala-library-2.11.8.jar】之外的其他jar包)添加到User Library【Spark2.1.1】中保存。
5. hadoop下載和配置
windows系統(tǒng)開發(fā)執(zhí)行spark程序需要Hadoop環(huán)境支持(否則將拋出Failed to locate the winutils binary in the hadoop binary path錯(cuò)誤),可以通過第三方組件【winutils】完成。
1、打開winutils在github上的首頁面,
https://github.com/steveloughran/winutils/

2)點(diǎn)擊【Clone or download】按鈕,然后點(diǎn)擊【Download ZIP】按鈕下載獲得【winutils-master.zip】,將壓縮包下【hadoop-2.7.1】文件夾解壓到本機(jī)目錄(例:D:\java\hadoop-2.7.1)。
注:windows本機(jī)運(yùn)行spark需要用到 D:\java\hadoop-2.7.1\bin\winutils.exe
6. Spark示例運(yùn)行
前文下載的【spark-2.1.1-bin-hadoop2.7.tgz】中包含spark示例代碼,打開目錄【D:\java\spark-2.1.1-bin-hadoop2.7\examples\src\main】,可以看到spark示例代碼包括java、scala、R、python四種,這里演示java示例的JavaWordCount。
1)在Eclipse中創(chuàng)建一個(gè)名為【sparkworks-helloworld】的scala工程。

2)為【sparkworks-helloworld】工程添加前文創(chuàng)建的User Library【spark2.1.1】,然后創(chuàng)建名為【org.apache.spark.examples】的包。

3)復(fù)制【D:\java\spark-2.1.1-bin-hadoop2.7\examples\src\main\java\org\apache\spark\examples】目錄下的【JavaWordCount.java】文件,粘貼到包【org.apache.spark.examples】下。
4)選中【JavaWordCount.java】,通過右鍵菜單【Run as --> Java Application】執(zhí)行JavaWordCount的main函數(shù),在控制臺(tái)可看到下述提示:
Usage: JavaWordCount <file>
5)選中【JavaWordCount.java】,通過右鍵菜單【Run as --> Run Configurations...】打開配置界面,切換到Arguments選項(xiàng)卡,配置【Program arguments 】和【 VM arguments 】,前者對應(yīng)于單詞計(jì)數(shù)程序的輸入文件,后者設(shè)置Spark運(yùn)行環(huán)境。

VM arguments:
-Dspark.master=local[*]
-Dhadoop.home.dir=D:\java\hadoop-2.7.1
6)再次執(zhí)行JavaWordCount的main函數(shù),可在控制臺(tái)看到執(zhí)行結(jié)果輸出。
結(jié)語#
本文講述64位win7操作系統(tǒng)下基于eclipse的spark開發(fā)環(huán)境搭建,未涉及大數(shù)據(jù)集群環(huán)境,但足夠你啟動(dòng)Local版的spark程序的開發(fā)和調(diào)試了。