Spark Master HA原理及搭建

1. Master 的高可用原理

Standalone 集群只有一个 Master,如果 Master 挂了就无法提交应用
程序,需要给 Master 进行高可用配置,Master 的高可用可以使用
fileSystem(文件系统)和 zookeeper(分布式协调服务)。
fileSystem 只有存储功能,可以存储 Master 的元数据信息,用
fileSystem 搭建的 Master 高可用,在 Master 失败时,需要我们手动
启动另外的备用 Master,这种方式不推荐使用。
zookeeper 有选举和存储功能,可以存储 Master 的元素据信息,使用
zookeeper 搭建的 Master 高可用,当 Master 挂掉时,备用的
Master 会自动切换,推荐使用这种方式搭建 Master 的 HA。

在这里插入图片描述

2. Master 高可用搭建

1) 在 Spark Master 节点上配置主 Master,配置 spark-env.sh
添加参数

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=node2:2181,node3:2181,node4:2181 -Dspark.deploy.zookeeper.dir=/sparkHA"

在这里插入图片描述
2) 发送到其他 worker 节点上

[root@node1 conf]# scp spark-env.sh node2:`pwd`
spark-env.sh                                                                                                                                                 100% 4739   554.3KB/s   00:00    
[root@node1 conf]# scp spark-env.sh node3:`pwd`
spark-env.sh

3) 找一台节点(非主 Master 节点)配置备用 Master,修改 spark-
env.sh 配置节点上的 MasterIP

[root@node2 conf]# vim spark-env.sh
# 修改备用Master host
export SPARK_MASTER_HOST=node2
# 启动master
[root@node2 conf]# ./../sbin/start-master.sh

4) 启动 spark Standalone 集群,启动备用 Master

[root@node2 conf]# ./../sbin/start-master.sh 

5) 查看集群之前启动 zookeeper 集群:

[zk: localhost:2181(CONNECTED) 0] ls /
[hadoop-ha, hbase, hiveserver2_zk, registry, sparkHA, yarn-leader-election, zk01, zk02, zookeeper]

6) 打开主 Master 和备用 Master WebUI 页面,观察状态。
后启动的master为备用master
在这里插入图片描述

3. 注意点

  • 主备切换过程中不能提交 Application。
  • 主备切换过程中不影响已经在集群中运行的 Application。因为 Spark 是粗粒度资源调度。

4. 测试验证

杀死主master,观察从master的状态

[root@node2 conf]# jps
57552 Worker
57648 Jps
57448 Master
57370 QuorumPeerMain
[root@node2 conf]# kill -9 57448

在这里插入图片描述
在大约20s后,standby自动切换为alive。
另经验证,在这20s内,若有准备执行的application任务,则会影响其申请资源,直到切换成功为止,但不影响已正常运行的task任务执行(其在worker端运行,不受master影响)

5.遇到问题

访问备用master时出现404问题
在这里插入图片描述
经查这是因为我的备用master和某一台zookeeper在同一个节点上,而8080端口已被Zookeeper AdminServer占用
解决办法,更换备用Master至其他节点。或更改zookeeper AdminServer端口参考:https://developer.aliyun.com/article/613976

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值