Spark的Standalone模式之HA集群搭建
前言
本文使用Spark的版本为:spark-2.3.0-bin-hadoop2.7.tgz
。
spark的集群采用3台机器进行搭建,机器分别是server01,server02,server03
。
其中:server01,server02
设置为Master
,server01,server02,server03
为Worker
。
1.下载Spark
Spark下载地址:
选择对应的版本进行下载就好,我这里下载的版本是:spark-2.3.0-bin-hadoop2.7.tgz
。
2.上传及解压
2.1 下载到本地后,上传到Linux的虚拟机上
scp spark-2.3.0-bin-hadoop2.7.tgz hadoop@server01:/hadoop
2.2 解压
tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz
2.3 重命名
mv spark-2.3.0-bin-hadoop2.7 spark
3.配置环境
进入spark/conf
目录
3.1 复制配置文件
cp slaves.template slaves
cp spark-env.sh.template spark-env.sh
3.2 修改slaves配置文件
spark集群的worker进程配置
server01
server02
server03
3.3 修改spark-env.sh配置文件
# java环境变量
export JAVA_HOME=/java/jdk1.8.0_161
# spark集群master进程主机host
export SPARK_MASTER_HOST=server01
# spark集群master的端口号
export SPARK_MASTER_PORT=7077
# worker数量
export SPARK_WORKER_CORES=3
# worker机器的内存设置
export SPARK_WORKER_MEMORY=1g
# 配置zk
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=server01:2181,server02:2181,server03:2181 -Dspark.deploy.zookeeper.dir=/spark"
# 配置hadoop配置目录
export HADOOP_CONF_DIR=/hadoop/hadoop-2.7.5/etc/hadoop
3.4 下发到server02和server03机器上
scp -r /hadoop/spark hadoop@server02:/hadoop
scp -r /hadoop/spark hadoop@server03:/hadoop
3.5 修改server02机器上的spark-env.sh
的SPARK_MASTER_HOST
参数信息
# 将主机名改为server02
export SPARK_MASTER_HOST=server02
3.6 配置环境变量
给server01,server02,server03
机器上配置spark的环境变量
export SPARK_HOME=/hadoop/spark
export PATH=$PATH:$SPARK_HOME/bin
使配置环境生效
source /etc/profile
4. 启动Spark集群
在server01机器上,进入spark目录
4.1 分别启动master和slaves进程
# 启动master进程
sbin/start-master.sh
# 启动3个worker进程
sbin/start-slaves.sh
使用jps查看进程
4.2 直接使用start-all.sh
启动
sbin/start-all.sh
4.3 手动启动server02机器上的master进程
进入spark目录
sbin/start-master.sh
我们可以使用stop-all.sh杀死spark的进程
sbin/stop-all.sh
web页面展示
在浏览器中输入
server01::8080
Status:ALIVE 说明master为主Master
server02:8080
Status:STANDBY 说明这是备用的Master