一次搭建Spark集羣(standalone、yarn、高可用)

Standalone模式

1.下載安裝包、解壓
這裏寫圖片描述

[root@node01 package]# tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz -C /opt/software/

2.改名

[root@node01 software]# mv spark-2.2.0-bin-hadoop2.7/ spark-2.2.0

3.進入安裝包的conf目錄下,修改slaves.template文件,添加從節點。保存。

[root@node01 conf]# cp slaves.template slaves
[root@node01 conf]# vi slaves
node02
node03
node04

4.修改spark-env.sh

SPARK_MASTER_IP/HOST:master的ip或host,之前的版本中是IP,後面改爲HOST
SPARK_MASTER_PORT:提交任務的端口,默認是7077
SPARK_WORKER_CORES:每個worker從節點能夠支配的core的個數
SPARK_WORKER_MEMORY:每個worker從節點能夠支配的內存數

export SPARK_MASTER_HOST=node01
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2
export SPARK_WORKER_MEMORY=3g

5.同步到其他節點

scp -r spark-2.2.0/ node02:`pwd`
scp -r spark-2.2.0/ node03:`pwd`
scp -r spark-2.2.0/ node04:`pwd`

6.啓動集羣

[root@node01 ~]# cd /opt/software/spark-2.2.0/sbin/
[root@node01 sbin]# ./start-all.sh 

7.搭建客戶端
將spark安裝包原封不動的拷貝到一個新的節點上,然後,在新的節點上提交任務即可。

注意:
(1) 8080是Spark WEBUI界面的端口,7077是Spark任務提交的端口。

(2)修改master的WEBUI端口:

(3)修改start-master.sh即可。

if [ "$SPARK_MASTER_WEBUI_PORT" = "" ]; then
  SPARK_MASTER_WEBUI_PORT=8080
fi

(4)也可以在Master節點上導入臨時環境變量,只是作用於之後的程序,重啓就無效了。

[root@node01 sbin]# export SPARK_MASTER_WEBUI_PORT=8080

(5)刪除臨時環境變量:

[root@node01 sbin]# export -n SPARK_MASTER_WEBUI_PORT

Yarn模式

只需要在standalone模式的基礎上,在客戶端的spark-env.sh文件中配置如下:

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

高可用

(1)在Spark Master節點上配置主Master,配置spark-env.sh

SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=node02:2181,node03:2181,node04:2181
-Dspark.deploy.zookeeper.dir=/var/hadoop/zk"

(2)發送到其他worker節點上

[root@node01 conf]# scp spark-env.sh node02:`pwd`
[root@node01 conf]# scp spark-env.sh node03:`pwd`
[root@node01 conf]# scp spark-env.sh node04:`pwd`

(3)找一臺節點(非主Master節點)配置備用 Master,修改spark-env.sh配置節點上的HOST/MasterIP

export SPARK_MASTER_HOST=node02

(4)啓動集羣之前啓動zookeeper集羣:
(5)啓動spark Standalone集羣,啓動備用Master
(6)打開主Master和備用Master WebUI頁面,觀察狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章