Intellij Idea搭建Spark開發環境
在Spark高速入門指南 – Spark安裝與基礎使用中介紹了Spark的安裝與配置。在那裏還介紹了使用spark-submit提交應用。只是不能使用vim來開發Spark應用。放著IDE的方便不用。這裏介紹使用Intellij Idea搭建Spark的開發環境。
1、Intellij Idea的安裝
因為Spark安裝在Ubuntu環境中。這裏的Idea也安裝在Ubuntu中。首先是下載,到官網下載就可以。下載完後解壓到待安裝的文件夾:
sudo tar -zxvf ideaIU-2016.1.tar.gz -C /usr/local/
我解壓在了/usr/local文件夾下,然後更改文件夾名:
mv ideaIU-2016.1 idea然後改動文件的用戶和用戶組:
sudo chown -R hadoop:hadoop idea這裏的hadoop是我的username和組名。這樣idea就成功安裝了。
為了啟動idea,進入idea/bin文件夾。運行裏面的idea.sh:
bin/idea.sh這樣就能夠啟動idea。只是這樣不方便。能夠在桌面新建文件idea.desktop,輸入例如以下內容:
[Desktop Entry] Name=IdeaIU Comment=Rayn-IDEA-IU Exec=/usr/local/idea/bin/idea.sh Icon=/usr/local/idea/bin/idea.png Terminal=false Type=Application Categories=Developer;
2、maven的安裝與配置
Maven 是一個項目管理和構建自己主動化工具。作為一個程序猿,都有過為了使用某個功能而在項目中加入jar包的經歷,使用的框架多了。須要加入的jar包也多,而maven可以自己主動為我們加入須要的jar包。
首先在maven官網上下載maven:
下載之後在Downloads文件夾下有例如以下文件:
[email protected]:~/Downloads$ ls apache-maven-3.3.9-bin.tar.gz解壓到待安裝的文件夾:
[email protected]
[email protected]:/usr/local$ sudo mv apache-maven-3.3.9/ maven [email protected]:/usr/local$ sudo chown -R liu:liu maven [email protected]:/usr/local$ ll maven total 52 drwxr-xr-x 6 liu liu 4096 3月 28 20:24 ./ drwxr-xr-x 12 root root 4096 3月 28 20:26 ../ drwxr-xr-x 2 liu liu 4096 3月 28 20:24 bin/ drwxr-xr-x 2 liu liu 4096 3月 28 20:24 boot/ drwxr-xr-x 3 liu liu 4096 11月 11 00:38 conf/ drwxr-xr-x 3 liu liu 4096 3月 28 20:24 lib/ -rw-r--r-- 1 liu liu 19335 11月 11 00:44 LICENSE -rw-r--r-- 1 liu liu 182 11月 11 00:44 NOTICE -rw-r--r-- 1 liu liu 2541 11月 11 00:38 README.txt [email protected]:/usr/local$然後將maven加入到環境變量中:
sudo vim ~/.bashrc在最後加入以下的內容:
export PATH=$PATH:/usr/local/maven/bin
使更改生效:
[email protected]:/usr/local$ source ~/.bashrc這樣maven就安裝好了。
3、用剛安裝的maven配置idea
起始idea自帶了maven,這裏配置自己安裝的maven。
一次選擇File->Setting->Build,Execution,Deployment->Build Tools->Maven,例如以下圖:
在右側裏的Maven home directory裏設置Maven的安裝文件夾。就我這裏是/usr/local/maven,在User settings file裏設置Mavne的配置文件。我這裏使用默認的文件。在Local repository裏設置本地包的管理倉庫,選擇右側的Override後,能夠自己定義自己的倉庫文件夾,以後Maven自己主動下載的包就會存放在這裏。
單擊OK後maven就配置完了。
然後就能夠創建一個maven項目。
4、創建maven項目
依次選擇File->New->New Project。出現例如以下界面:
左側能夠選擇項目的類型,這裏選擇Maven。右側能夠選擇是否使用模板,勾選上面的Create from archetype後。就能夠在以下選擇項目模板,這裏選擇Scala的模板。
一路next之後。這裏填一下groupID和artifactID。名字隨便取:
然後一路next,填寫上項目的名字,OK就能夠了。
這樣新項目就創建成功了,新項目的文件結構例如以下圖:
當中的pom.xml就是配置我們項目的依賴包的。src是項目存放代碼的文件夾,以下有兩個結構同樣的文件夾main和test,當中我們在main文件夾下編寫代碼,test編寫測試代碼。這裏先不使用測試,能夠將test文件夾刪除。
右側展示的就是pom.xml文件的內容:
勾選右上角的Enable Auto-Import,這樣Idea就會自己主動下載項目所需的依賴包。還要註意中間的Scala版本號,選擇自己使用的版本號。
在下圖中的dependencies標簽下能夠加入項目的依賴:
每個依賴都在一個dependency標簽下,當中包含groupID、artifactID和version。假設不知道依賴包的這些內容的話,能夠在這裏進行查詢,查詢結果就有這些信息。比方要查詢spark的依賴,有例如以下的結果:
選擇要加入的依賴。進入後選擇對應的版本,以下就有maven須要的一些信息,同一時候還包含其他包管理工具的信息,比方sbt:
就能夠拷貝到pom.xml文件裏了。
maven會自己主動下載pom.xml中加入的依賴包。不用我們自己加入,省去了非常多麻煩。
之後就能夠寫代碼了,在src/main/scala/com/liu下新建Scala類,選擇類型為Object,填寫類名。就能夠編寫代碼了。作為演示樣例。這裏是一個wordcount的樣例:
package com.liu /** * Created by hadoop on 16-3-28. */ import org.apache.spark.{SparkContext,SparkConf} object Test { def main(args:Array[String]): Unit ={ val conf=new SparkConf() val sc=new SparkContext(conf) val text=sc.textFile("file:///usr/local/spark/README.md") val result=text.flatMap(_.split(' ')).map((_,1)).reduceByKey(_+_).collect() result.foreach(println) } }這裏不介紹代碼的詳細含義。
代碼寫好後,須要生成jar包並提交到spark上執行。
以下的步驟來生成jar包。依次選擇File->Project Structure->Artifacts。例如以下圖:
單擊中間的綠色加號。選擇JAR->from modules with dependencies。例如以下圖:
在Main Class中選擇項目的主要類,OK就可以。結果例如以下:
中間的Output Layout會列出全部的依賴包,我們要提交到Spark上,所以不須要這裏的Spark和Hadoop依賴包,刪除來節約空間。只是不要刪除最後的compile output,要不然就生不成jar包了。點擊OK完畢配置。
之後選擇Build->Build Artifact->Build,就能夠生成jar包了,結果例如以下圖:
上圖中多了一個out目錄。以下有一個jar包。表明生成成功。
5、提交Spark應用
生成了jar包後就能夠使用spark-submit來提交應用了,使用例如以下命令:
spark-submit --class "com.liu.Test" ~/SparkDemo.jar就能夠提交應用。結果例如以下:
表明執行成功。列出了單詞的計數統計。
至此,Spark的Idea開發環境搭建成功。
Intellij Idea搭建Spark開發環境