欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-01 16:38:37
...

Standalone模式

1.下载安装包、解压
一次搭建Spark集群(standalone、yarn、高可用)

[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页面,观察状态。