天天看點

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1、編譯Spark

Spark可以通過SBT和Maven兩種方式進行編譯,再通過make-distribution.sh腳本生成部署包。SBT編譯需要安裝git工具,而Maven安裝則需要maven工具,兩種方式均需要在聯網下進行,通過比較發現SBT編譯速度較慢(原因有可能是1、時間不一樣,SBT是白天編譯,Maven是深夜進行的,擷取依賴包速度不同 2、maven下載下傳大檔案是多線程進行,而SBT是單程序),Maven編譯成功前後花了3、4個小時。

1.1 編譯Spark(SBT)

1.1.1 安裝git并編譯安裝

1.  從如下位址下載下傳git安裝包

http://www.onlinedown.net/softdown/169333_2.htm

https://www.kernel.org/pub/software/scm/git/

如果linux是CentOS作業系統可以通過:yum install git直接進行安裝

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

由于從https擷取内容,需要安裝curl-devel,可以從如下位址擷取

http://rpmfind.net/linux/rpm2html/search.php?query=curl-devel

如果linux是CentOS作業系統可以通過:yum install curl-devel直接進行安裝

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 上傳git并解壓縮

把git-1.7.6.tar.gz安裝包上傳到/home/hadoop/upload目錄中,解壓縮然後放到/app目錄下

$cd /home/hadoop/upload/

$tar -xzf git-1.7.6.tar.gz

$mv git-1.7.6 /app

$ll /app

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3. 編譯安裝git

以root使用者進行在git所在路徑編譯安裝git

#yum install curl-devel

#cd /app/git-1.7.6 

#./configure

#make

#make install

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

4. 把git加入到PATH路徑中

打開/etc/profile把git所在路徑加入到PATH參數中

export GIT_HOME=/app/git-1.7.6

export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GIT_HOME/bin

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

重新登入或者使用source /etc/profile使參數生效,然後使用git指令檢視配置是否正确

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1.1.2 下載下傳Spark源代碼并上傳

1. 可以從如下位址下載下傳到spark源代碼:

http://spark.apache.org/downloads.html

http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz

git clone https://github.com/apache/spark.git

把下載下傳好的spark-1.1.0.tgz源代碼包使用1.1.3.1介紹的工具上傳到/home/hadoop/upload 目錄下

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 在主節點上解壓縮

$cd /home/hadoop/upload/

$tar -xzf spark-1.1.0.tgz

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3. 把spark-1.1.0改名并移動到/app/complied目錄下

$mv spark-1.1.0 /app/complied/spark-1.1.0-sbt

$ls /app/complied

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1.1.3 編譯代碼

編譯spark源代碼的時候,需要從網上下載下傳依賴包,是以整個編譯過程機器必須保證在聯網狀态。編譯執行如下腳本:

$cd /app/complied/spark-1.1.0-sbt

$sbt/sbt assembly -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

整個編譯過程編譯了約十幾個任務,重新編譯N次,需要幾個甚至十幾個小時才能編譯完成(主要看下載下傳依賴包的速度)。

1.2 編譯Spark(Maven)

1.2.1 安裝Maven并配置參數

在編譯前最好安裝3.0以上版本的Maven,在/etc/profile配置檔案中加入如下設定:

export MAVEN_HOME=/app/apache-maven-3.0.5

export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$GIT_HOME/bin

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1.2.2 下載下傳Spark源代碼并上傳

1. 可以從如下位址下載下傳到spark源代碼:

http://spark.apache.org/downloads.html

http://d3kbcqa49mib13.cloudfront.net/spark-1.1.0.tgz

git clone https://github.com/apache/spark.git

把下載下傳好的spark-1.1.0.tgz源代碼包使用1.1.3.1介紹的工具上傳到/home/hadoop/upload 目錄下

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 在主節點上解壓縮

$cd /home/hadoop/upload/

$tar -xzf spark-1.1.0.tgz

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3. 把spark-1.1.0改名并移動到/app/complied目錄下

$mv spark-1.1.0 /app/complied/spark-1.1.0-mvn

$ls /app/complied

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1.2.3 編譯代碼

編譯spark源代碼的時候,需要從網上下載下傳依賴包,是以整個編譯過程機器必須保證在聯網狀态。編譯執行如下腳本:

$cd /app/complied/spark-1.1.0-mvn

$export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

$mvn -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -Pkinesis-asl -Phive -DskipTests clean package

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

整個編譯過程編譯了約24個任務,整個過程耗時1小時45分鐘。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

1.3 生成Spark部署包

在Spark源碼根目錄下有一個生成部署包的腳本make-distribution.sh,可以通過執行如下指令進行打包 ./make-distribution.sh [--name] [--tgz] [--with-tachyon] <maven build options>

l  --name NAME和--tgz 結合可以生成spark-$VERSION-bin-$NAME.tgz 的部署包,不加此參數時NAME 為hadoop 的版本号

l  --tgz在根目錄下生成 spark-$VERSION-bin.tgz ,不加此參數時不生成tgz 檔案,隻生成/dist 目錄

l  --with-tachyon  是否支援記憶體檔案系統Tachyon ,不加此參數時不支援tachyon

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

例子:

1. 生成支援yarn 、hadoop2.2.0 、hive 的部署包:

./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Phive

2. 生成支援yarn 、hadoop2.2.0 、hive 、ganglia 的部署包:

./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -P hive

1.3.1 生成部署包

使用如下指令生成Spark部署包,由于該腳本預設在JDK1.6進行,在開始時會進行詢問是否繼續,隻要選擇Y即可

$cd /app/complied/spark-1.1.0-mvn/

$./make-distribution.sh --tgz --name 2.2.0 -Pyarn -Phadoop-2.2 -Pspark-ganglia-lgpl -P hive

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

生成Spark部署包編譯了約24個任務,用時大概1小時38分鐘。

1.3.2 檢視生成結果

生成在部署包位于根目錄下,檔案名類似于spark-1.1.0-bin-2.2.0.tgz。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2、安裝Spark

2.1 上傳并解壓Spark安裝包

1.我們使用上一步驟編譯好的spark-1.1.0-bin-2.2.0.tgz檔案作為安裝包(也可以從網上下載下傳native檔案夾或者打包好的64位hadoop安裝包),使用"Spark編譯與部署(上)"中1. 3.1介紹的工具上傳到/home/hadoop/upload 目錄下

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 在主節點上解壓縮

$cd /home/hadoop/upload/

$tar -xzf spark-1.1.0-bin-2.2.0.tgz

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3. 把spark改名并移動到/app/hadoop目錄下

$mv spark-1.1.0-bin-2.2.0 /app/hadoop/spark-1.1.0

$ll /app/hadoop

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.2 配置/etc/profile

1. 打開配置檔案/etc/profile

$sudo vi /etc/profile

2.     定義SPARK_HOME并把spark路徑加入到PATH參數中

SPARK_HOME=/app/hadoop/spark-1.1.0

PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

2.3 配置conf/slaves

1. 打開配置檔案conf/slaves

$cd /app/hadoop/spark-1.1.0/conf

$sudo vi slaves

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 加入slave配置節點

hadoop1

hadoop2

hadoop3

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.4 配置conf/spark-env.sh

1. 打開配置檔案conf/spark-env.sh

$cd /app/hadoop/spark-1.1.0/conf

$cp spark-env.sh.template spark-env.sh

$sudo vi spark-env.sh

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 加入Spark環境配置内容,設定hadoop1為Master節點

export SPARK_MASTER_IP=hadoop1

export SPARK_MASTER_PORT=7077

export SPARK_WORKER_CORES=1

export SPARK_WORKER_INSTANCES=1

export SPARK_WORKER_MEMORY=512M

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.5 向各節點分發Spark程式

1. 進入hadoop1機器/app/hadoop目錄,使用如下指令把spark檔案夾複制到hadoop2和hadoop3機器

$cd /app/hadoop

$scp -r spark-1.1.0 [email protected]:/app/hadoop/

$scp -r spark-1.1.0 [email protected]:/app/hadoop/

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2. 在從節點檢視是否複制成功

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.6 啟動Spark

$cd /app/hadoop/spark-1.1.0/sbin

$./start-all.sh

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.7 驗證啟動

此時在hadoop1上面運作的程序有:Worker和Master

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

此時在hadoop2和hadoop3上面運作的程序有隻有Worker

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

通過 netstat -nlt 指令檢視hadoop1節點網絡情況

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

在浏覽器中輸入 http://hadoop1:8080(需要注意的是要在網絡設定中把hadoop*除外,否則會到外網DNS解析,出現無法通路的情況) 既可以進入Spark叢集狀态頁面

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

2.8 驗證用戶端連接配接

進入hadoop1節點,進入spark的bin目錄,使用spark-shell連接配接叢集

$cd /app/hadoop/spark-1.1.0/bin

$spark-shell --master spark://hadoop1:7077 --executor-memory 500m

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

在指令中隻指定了記憶體大小并沒有指定核數,是以該用戶端将占用該叢集所有核并在每個節點配置設定500M記憶體

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3、Spark測試

3.1 使用Spark-shell測試

這裡我們測試一下在Hadoop中大家都知道的WordCout程式,在MapReduce實作WordCout需要Map、Reduce和Job三個部分,而在Spark中甚至一行就能夠搞定。下面就看一下是如何實作的:

3.1.1 啟動HDFS

$cd /app/hadoop/hadoop-2.2.0/sbin

$./start-dfs.sh

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

通過jps觀察啟動情況,在hadoop1上面運作的程序有:NameNode、SecondaryNameNode和DataNode

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

hadoop2和hadoop3上面運作的程序有:NameNode和DataNode

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.1.2 上傳資料到HDFS中

把hadoop配置檔案core-site.xml檔案作為測試檔案上傳到HDFS中

$hadoop fs -mkdir -p /user/hadoop/testdata

$hadoop fs -put /app/hadoop/hadoop-2.2.0/etc/hadoop/core-site.xml /user/hadoop/testdata

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.1.3 啟動Spark

$cd /app/hadoop/spark-1.1.0/sbin

$./start-all.sh

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.1.4 啟動Spark-shell

在spark用戶端(這裡在hadoop1節點),使用spark-shell連接配接叢集

$cd /app/hadoop/spark-1.1.0/bin

$./spark-shell --master spark://hadoop1:7077 --executor-memory 512m --driver-memory 500m

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.1.5 運作WordCount腳本

下面就是WordCount的執行腳本,該腳本是scala編寫,以下為一行實作:

scala>sc.textFile("hdfs://hadoop1:9000/user/hadoop/testdata/core-site.xml").flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).take(10)

為了更好看到實作過程,下面将逐行進行實作:

scala>val rdd=sc.textFile("hdfs://hadoop1:9000/user/hadoop/testdata/core-site.xml")

scala>rdd.cache()

scala>val wordcount=rdd.flatMap(_.split(" ")).map(x=>(x,1)).reduceByKey(_+_)

scala>wordcount.take(10)

scala>val wordsort=wordcount.map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1))

scala>wordsort.take(10)

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

詞頻統計結果如下:

Array[(String, Int)] = Array(("",100), (the,7), (</property>,6), (<property>,6), (under,3), (in,3), (License,3), (this,2), (-->,2), (file.,2))

3.1.6 觀察運作情況

通過http://hadoop1:8080檢視Spark運作情況,可以看到Spark為3個節點,每個節點各為1個核心/512M記憶體,用戶端配置設定3個核,每個核有512M記憶體。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

通過點選用戶端運作任務ID,可以看到該任務在hadoop2和hadoop3節點上運作,在hadoop1上并沒有運作,主要是由于hadoop1為NameNode和Spark用戶端造成記憶體占用過大造成

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.2 使用Spark-submit測試

從Spark1.0.0開始,Spark提供了一個易用的應用程式部署工具bin/spark-submit,可以完成Spark應用程式在local、Standalone、YARN、Mesos上的快捷部署。該工具文法及參數說明如下:

Usage: spark-submit [options] <app jar | python file> [app options]

Options:

  --master MASTER_URL          spark://host:port, mesos://host:port, yarn, or local.

  --deploy-mode DEPLOY_MODE  driver運作之處,client運作在本機,cluster運作在叢集

  --class CLASS_NAME            應用程式包的要運作的class

  --name NAME                  應用程式名稱

  --jars JARS                     用逗号隔開的driver本地jar包清單以及executor類路徑

  --py-files PY_FILES              用逗号隔開的放置在Python應用程式

PYTHONPATH上的.zip, .egg, .py檔案清單

  --files FILES                    用逗号隔開的要放置在每個executor工作目錄的檔案清單

  --properties-file FILE           設定應用程式屬性的檔案放置位置,預設是conf/spark-defaults.conf

  --driver-memory MEM         driver記憶體大小,預設512M

  --driver-java-options           driver的java選項

  --driver-library-path            driver的庫路徑Extra library path entries to pass to the driver

  --driver-class-path             driver的類路徑,用--jars 添加的jar包會自動包含在類路徑裡

  --executor-memory MEM       executor記憶體大小,預設1G

 Spark standalone with cluster deploy mode only:

  --driver-cores NUM           driver使用核心數,預設為1

  --supervise                   如果設定了該參數,driver失敗是會重新開機

 Spark standalone and Mesos only:

  --total-executor-cores NUM    executor使用的總核數

 YARN-only:

  --executor-cores NUM         每個executor使用的核心數,預設為1

  --queue QUEUE_NAME        送出應用程式給哪個YARN的隊列,預設是default隊列

  --num-executors NUM        啟動的executor數量,預設是2個

  --archives ARCHIVES          被每個executor提取到工作目錄的檔案清單,用逗号隔開

3.2.1 運作腳本1

該腳本為Spark自帶例子,在該例子中個計算了圓周率π的值,以下為執行腳本:

$cd /app/hadoop/spark-1.1.0/bin

$./spark-submit --master spark://hadoop1:7077 --class org.apache.spark.examples.SparkPi --executor-memory 512m ../lib/spark-examples-1.1.0-hadoop2.2.0.jar 200

參數說明(詳細可以參考上面的參數說明):

l  --master Master所在位址,可以有Mesos、Spark、YARN和Local四種,在這裡為Spark Standalone叢集,位址為spark://hadoop1:7077

l  --class應用程式調用的類名,這裡為org.apache.spark.examples.SparkPi

l  --executor-memory 每個executor所配置設定的記憶體大小,這裡為512M

l  執行jar包 這裡是../lib/spark-examples-1.1.0-hadoop2.2.0.jar

l  分片數目 這裡數目為200

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.2.2 觀察運作情況

通過觀察Spark叢集有3個Worker節點和正在運作的1個應用程式,每個Worker節點為1核心/512M記憶體。由于沒有指定應用程式所占核心數目,則該應用程式占用該叢集所有3個核心,并且每個節點配置設定512M記憶體。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

根據每個節點負載情況,每個節點運作executor并不相同,其中hadoop1的executor數目為0。而hadoop3執行executor數為10個,其中5個EXITED狀态,5個KILLED狀态。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

3.2.3 運作腳本2

該腳本為Spark自帶例子,在該例子中個計算了圓周率π的值,差別腳本1這裡指定了每個executor核心資料,以下為執行腳本:

$cd /app/hadoop/spark-1.1.0/bin

$./spark-submit --master spark://hadoop1:7077 --class org.apache.spark.examples.SparkPi --executor-memory 512m --total-executor-cores 2 ../lib/spark-examples-1.1.0-hadoop2.2.0.jar 200

參數說明(詳細可以參考上面的參數說明):

l  --master Master所在位址,可以有Mesos、Spark、YARN和Local四種,在這裡為Spark Standalone叢集,位址為spark://hadoop1:7077

l  --class應用程式調用的類名,這裡為org.apache.spark.examples.SparkPi

l  --executor-memory 每個executor所配置設定的記憶體大小,這裡為512M

l  --total-executor-cores 2 每個executor配置設定的核心數

l  執行jar包 這裡是../lib/spark-examples-1.1.0-hadoop2.2.0.jar

l  分片數目 這裡數目為200

3.2.4 觀察運作情況

通過觀察Spark叢集有3個Worker節點和正在運作的1個應用程式,每個Worker節點為1核心/512M記憶體。由于指定應用程式所占核心數目為2,則該應用程式使用該叢集所有2個核心。

Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試
Spark入門實戰系列--2.Spark編譯與部署(下)--Spark編譯安裝1、編譯Spark2、安裝Spark3、Spark測試

繼續閱讀