1. 程式人生 > >Intellij Idea搭建Spark開發環境

Intellij Idea搭建Spark開發環境

submit split des 出現 license tor lan jar word

在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]
*/:~/Downloads$ sudo tar -zxvf apache-maven-3.3.9-bin.tar.gz -C /usr/local/相同,改動目錄名和username:

[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開發環境