Spark StandAlone HA 环境搭建

前言

本篇将介绍如何快速搭建 Spark StandAlone HA环境,请确保你的Zookeeper和HDFS均已启动,以及搭建好了基本的Spark StandAlone环境。
参考文章:
Spark StandAlone环境部署
ZooKeeper安装部署

如果是一直跟着我的文章来到这的,就直接看下面内容即可。

一、Spark StandAlone HA 原理

Zookeeper负责状态维护,集群开启多个master进程,一个作为活跃,其余作为备份,当活跃的master宕机后,由备份的master进行接管。

二、修改配置文件

1、修改spark-env.sh

cd /export/servers/spark-3.2.0/conf
vi spark-env.sh

#删除或者注释掉 SPARK_MASTER_HOST=node1/
因为使用HA模式后,master就不应该固定在某一个节点上了。

spark-env.sh中, 增加:

SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node1:2181,node2:2181,node3:2181 -Dspark.deploy.zookeeper.dir=/spark-ha"
# spark.deploy.recoveryMode 指定HA模式 基于Zookeeper实现
# 指定Zookeeper的连接地址
# 指定在Zookeeper中注册临时节点的路径

2、同步spark-env.sh文件

scp spark-env.sh node2:/export/servers/spark-3.2.0/conf
scp spark-env.sh node3:/export/servers/spark-3.2.0/conf

3、停止StandAlone集群

cd /export/servers/spark-3.2.0
sbin/stop-all.sh

如果你本身就没有开启standalone集群,这一步忽略即可。

4、启动StandAlone集群

#node1上 启动一个master 和全部worker
sbin/start-all.sh

# 注意, 下面命令在node2上执行
sbin/start-master.sh
#node2上启动一个备用的master进程

此时,我们的spark集群上就有了两个master和三个worker。

三、查看master监控页面

netstat -anp|grep 进程编号

在这里插入图片描述
可以看到,我node1上的master进程的页面端口被绑定为8081,因此我输入node1:8080是肯定没有结果响应的。
在这里插入图片描述
在这里插入图片描述
我node2上的master进程的页面端口被绑定为8082
在这里插入图片描述

四、测试master主备切换

这一步是用于测试master主备切换的效果,我们在node2上提交一个程序进行,在任务还没结束时,我们在node1上杀死master进程,然后回到node2上,看看集群是否能正常使用备用的master作为新的活跃的master,去管理程序。

1、提交一个任务程序

cd /export/servers/spark-3.2.0
#提交任务
bin/spark-submit --master spark://node1:7077 /export/servers/spark-3.2.0/examples/src/main/python/pi.py 1000

2、杀死活跃master

kill -9 master进程号 

3、查看是否报错

在这里插入图片描述

在这里插入图片描述
可以看到,当我杀死掉进程之后,node1:8081无法打开
在这里插入图片描述
node2上的master已经变成活跃状态了
在这里插入图片描述

总结:master的主备切换,不会影响正在运行的程序,但会有一个中断期,整体时间会被延长。

五、恢复集群

因为刚才挂掉了一个master,如果不恢复集群,则又回到了单点故障的问题上了。

#node1上执行
sbin/start-master.sh

在这里插入图片描述
此时node1上的master就成了备用了,“糟了,我成替身了!!!”。其实谁是备用没有关系,有备用就行,你若想要node上的为活跃状态,只需要把node2的给干掉,然后再重新启动即可。

其它文章:
Spark环境搭建部署全流程,看这一篇就够了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值