《Spark核心技術與高級應用》——3.2節構建Spark的開發環境

本節書摘來自華章社區《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會安裝成功。


202d721077884acff29d9e7058d2600d9624a0ab

安裝完畢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的配置頁面。


062f48e433fe1cc60269525cbb44bbcd07803c1e

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


406b98a1de5880c34ba571c416413576aa66ba2a

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


f459610c0fcf5c0f6a2d06770aeb7508d84939e6

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


bb22c786241abe935ca05d40aff76da2d0c65225

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所示。


91a23e3843cc349533787f8c9398ec386d2ab2c9

④?通過“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。


0b033d53123c0693217cf0531247904faa79182f

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


5f4934ee2e72748a4041b08cd9aef137c9e17042

如果完整目錄還是不可見,可以查看具體日志,然后將需要下載的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下。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/541494.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/541494.shtml
英文地址,請注明出處:http://en.pswp.cn/news/541494.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python閉包怎么理解_Python 閉包的理解

Last Updated on 2019年10月15日Python中的閉包是一個比較模糊的概念,不太好理解,我最近的面試中也被問及,在一個單例模式的實現上,我用裝飾器實現單例,然后面試官就問到了我對閉包的理解,回答的不太清楚。…

Java BufferedReader mark()方法與示例

BufferedReader類mark()方法 (BufferedReader Class mark() method) mark() method is available in java.io package. mark()方法在java.io包中可用。 mark() method is used to mark the current position in this stream and whenever we call reset() method so it will re…

《全球互聯網金融商業模式:格局與發展》——第3章,第3節互聯網保險公司...

本節書摘來自華章出版社《全球互聯網金融商業模式:格局與發展》一書中的第3章,第3.3節互聯網保險公司,作者廖理,更多章節內容可以訪問云棲社區“華章計算機”公眾號查看 3.3 互聯網保險公司互聯網思維貫穿整個保險創新發展過程&a…

webapi隨機調用_BeetleX之webapi驗證插件JWT集成

對于webapi服務應用很多時候需要制訂訪問限制,在前面的章節也講述了組件如何制訂控制器訪問控制;但到了實際應用要自己去編寫還是比較麻煩。為了讓訪問控制更方便組件實現基于JWT的控制器訪問控制組件BeetleX.FastHttpApi.Jwt;通過這個組件可…

java bitset_Java BitSet nextClearBit()方法與示例

java bitsetBitSet類nextClearBit()方法 (BitSet Class nextClearBit() method) nextClearBit() method is available in java.util package. nextClearBit()方法在java.util包中可用。 nextClearBit() method is used to retrieve the index of the first bit that is set to …

《馴獅記——Mac OS X 10.8 Mountain Lion使用手冊》——2.3 Dock

本節書摘來自異步社區《馴獅記——Mac OS X 10.8 Mountain Lion使用手冊》一書中的第2章,第2.3節,作者:陳明 , 張錚 , 馬玉龍著,更多章節內容可以訪問云棲社區“異步社區”公眾號查看 2.3 Dock 馴獅記——Mac OS X 10.8 Mountain…

mysql 嵌套if標簽_對比Excel、MySQL、Python,分別講述 “if函數” 的使用原理!

作者:黃偉呢本文轉自:數據分析與統計學之美其實,不管是Excel、MySQL,還是Python,“if”條件判斷都起著很重要的作用。今天這篇文章,就帶著大家盤點一下,這三種語言如何分別使用 “if函數” 。if…

Java BigDecimal intValue()方法與示例

BigDecimal類的intValue()方法 (BigDecimal Class intValue() method) intValue() method is available in java.math package. intValue()方法在java.math包中可用。 intValue() method is used to convert a BigDecimal to an integer and when the converted BigDecimal val…

R語言數據挖掘

數據分析與決策技術叢書 R語言數據挖掘 Learning Data Mining with R [哈薩克斯坦]貝特麥克哈貝爾(Bater Makhabel) 著 李洪成 許金煒 段力輝 譯 圖書在版編目(CIP)數據 R語言數據挖掘 / (哈…

linux adduser mysql_linux_adduser

新帳號建立當不加-D參數,useradd指令使用命令列來指定新帳號的設定值and使用系統上的預設值.新使用者帳號將產生一些系統檔案,使用者目錄建立,拷備起始檔案等,這些均可以利用命令列選項指定。此版本為RedHatLinux提供,可幫每個新加…

java iterator_Java ArrayDeque iterator()方法與示例

java iteratorArrayDeque類iterator()方法 (ArrayDeque Class iterator() method) iterator() Method is available in java.lang package. iterator()方法在java.lang包中可用。 iterator() Method is used to return an iterator over the deque elements. iterator()方法用于…

《jQuery、jQuery UI及jQuery Mobile技巧與示例》——7.4 示例:使用按鈕集裝飾單選框...

本節書摘來自異步社區《jQuery、jQuery UI及jQuery Mobile技巧與示例》一書中的第7章,第7.4節,作者:【荷】Adriaan de Jonge , 【美】Phil Dutson著,更多章節內容可以訪問云棲社區“異步社區”公眾號查看 7.4 示例:使…

mysql 模擬序列_【原創】MySQL 模擬PostgreSQL generate_series 表函數

PostgreSQL 提供了一個很強大的造數據的函數generate_series,基于Common Table Expression。MySQL 沒有復雜的應用程序類型,該如何實現這樣的功能呢? 我想到的三種方法如下:1. 用存儲過程來做。 缺點是寫好多數據庫不擅長的應用邏輯。2. 我們…

Python字符串| isdigit()方法與示例

isdigit() is an in-built method in Python, which is used to check whether a string contains only digits or not. isdigit()是Python中的內置方法,用于檢查字符串是否僅包含數字。 Digit value contains all decimal characters and other digits which may …

vue2.0的學習

vue-router 除了使用 <router-link> 創建 a 標簽來定義導航鏈接&#xff0c;我們還可以借助 router 的實例方法&#xff0c;通過編寫代碼來實現。 1&#xff09;router.push(location) 這個方法會向 history 棧添加一個新的記錄&#xff0c;所以&#xff0c;當用戶點擊瀏…

mysql+url的配置參數詳解_MySql鏈接url參數詳解

mysql URL格式如下&#xff1a;jdbc:mysql://[host:port],[host:port].../[database][?參數名1][參數值1][&參數名2][參數值2]...MySQL在高版本需要指明是否進行SSL連接 在url后面加上 useSSLtrue 不然寫程序會有warning常用的幾個較為重要的參數&#xff1a;參數名…

Java LocalDate類| minus()方法與示例

LocalDate類isSupported()方法 (LocalDate Class isSupported() method) Syntax: 句法&#xff1a; public LocalDate minus(TemporalAmount t_amt);public LocalDate minus(long amt, TemporalUnit t_unit);isSupported() method is available in java.time package. isSuppo…

《Java EE 7精粹》—— 第3章 JSF 3.1 Facelets

本節書摘來異步社區《Java EE 7精粹》一書中的第2章&#xff0c;第2.1節&#xff0c;作者&#xff1a;【美】Arun Gupta&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 第3章 JSF JSF是基于Java的Web應用程序開發的服務器端用戶界面&#xff08;UI&#xf…

mysql5批處理_轉關于mysql5.5 的批處理討論(轉載)

MySql的JDBC驅動不支持批量操作(已結)MySql連接的url中要加rewriteBatchedStatements參數&#xff0c;例如String connectionUrl"jdbc:mysql://192.168.1.100:3306/test?rewriteBatchedStatementstrue";還要保證mysql JDBC驅的版本。MySql的JDBC驅動的批量插入操作性…

Java Duration類| isZero()方法與示例

持續時間類isZero()方法 (Duration Class isZero() method) isZero() method is available in java.time package. isZero()方法在java.time包中可用。 isZero() method is used to check whether this Duration object holds the value of length is 0 or not. isZero()方法用…