Spark集群的部署及運行


1.Spark運行模式

Spark 有很多種模式,最簡單就是單機本地模式,還有單機偽分布式模式,復雜的則運行在集群中,目前能很好的運行在 Yarn和 Mesos 中,當然 Spark 還有自帶的 Standalone 模式,對於大多數情況 Standalone 模式就足夠了,如果企業已經有 Yarn 或者 Mesos 環境,也是很方便部署的。

1.local(本地模式)常用於本地開發測試,本地分為local單線程和local-cluster多線程;

2.standalone(集群模式)典型的Mater/slave模式,不過也能看出Master是有單點故障的;Spark支持ZooKeeper來實現 HA

3.on yarn(集群模式) 運行在 yarn 資源管理器框架之上,由 yarn 負責資源管理,Spark 負責任務調度和計算

4.on mesos(集群模式) 運行在 mesos 資源管理器框架之上,由 mesos 負責資源管理,Spark 負責任務調度和計算

5.on cloud(集群模式)比如 AWS 的 EC2,使用這個模式能很方便的訪問 Amazon的 S3;Spark 支持多種分布式存儲系統:HDFS 和 S3

2.Spark on yarn安裝部署

1.安裝 Scala

(1)版本信息:

hadoop-2.7.3.tar.gz

scala-2.11.8.tgz Spark官方要求 Scala 版本為 2.10.x,注意不要下錯版本,我這里下了2.11.8

spark-2.0.2-bin-hadoop2.7.tgz

jdk1.7

(2)修改/etc/hosts文件,無密連接

(3)   解壓縮(hadoop用戶):

tar -zxvf scala-2.11.8.tgz

(4)修改環境變量sudo vi /etc/profile,添加:

#scala

export SCALA_HOME=/data/scala-2.11.8

export PATH=$PATH:$SCALA_HOME/bin

(5) 使環境變量生效,並驗證 scala 是否安裝成功

$ source /etc/profile    #生效環境變量

$ scala -version        #如果打印出如下版本信息,則說明安裝成功

Scala code runner version 2.10.4 -- Copyright 2002-2013, LAMP/EPFL

2.安裝yarn

已安裝

3.安裝spark

(1)解壓:

tar -zxvf spark-2.0.2-bin-hadoop2.7.tgz

(2)配置 Spark:

cd ~/spark/conf    #進入spark配置目錄

cp spark-env.sh.template spark-env.sh   #從配置模板復制

vi spark-env.sh     #添加配置內容

在spark-env.sh末尾添加以下內容(這是我的配置,你可以自行修改):

export SCALA_HOME=/home/spark/workspace/scala-2.10.4

export JAVA_HOME=/home/spark/workspace/jdk1.7.0_75

export HADOOP_HOME=/home/spark/workspace/hadoop-2.6.0

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

SPARK_MASTER_IP=master

SPARK_LOCAL_DIRS=/home/spark/workspace/spark-1.3.0

SPARK_DRIVER_MEMORY=1G

注:在設置Worker進程的CPU個數和內存大小,要注意機器的實際硬件條件,如果配置的超過當前Worker節點的硬件條件,Worker進程會啟動失敗。

 

(3)vi slaves在slaves文件下填上slave主機名:

192.168.111.16

192.168.111.17

192.168.111.18

將配置好的spark-1.3.0文件夾分發給所有slaves

scp -r ~/workspace/spark-1.3.0 spark@slave1:~/workspace/

(4)啟動Spark:

sbin/start-all.sh

(5) 驗證 Spark 是否安裝成功:

用jps檢查,在 master 上應該有以下幾個進程:

$ jps

7949 Jps

7328 SecondaryNameNode

7805 Master

7137 NameNode

7475 ResourceManager

 

在 slave 上應該有以下幾個進程:

$jps

3132 DataNode

3759 Worker

3858 Jps

3231 NodeManager

進入Spark的Web管理頁面: http://master:8080

 

3.運行示例

#本地模式兩線程運行

./bin/run-example SparkPi 10 --master local[2]

 

#Spark Standalone 集群模式運行

./bin/spark-submit \

  --class org.apache.spark.examples.SparkPi \

  --master spark://master:7077 \

  lib/spark-examples-1.3.0-hadoop2.4.0.jar \

  100

 

#Spark on YARN 集群上 yarn-cluster 模式運行

./bin/spark-submit \

    --class org.apache.spark.examples.SparkPi \

    --master yarn-cluster \  # can also be `yarn-client`

    lib/spark-examples*.jar \

10

 

注意 Spark on YARN 支持兩種運行模式,分別為yarn-cluster和yarn-client,具體的區別可以看這篇博文,從廣義上講,yarn-cluster適用於生產環境;而yarn-client適用於交互和調試,也就是希望快速地看到application的輸出。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM