Spark系列(五)Master主备切换机制

Spark Master主备切换主要有两种机制,之中是基于文件系统,一种是基于Zookeeper.基于文件系统的主备切换机制需要在Active Master挂掉后手动切换到Standby Master上,而基于Zookeeper的主备切换机制可以实现自动切换Master。

切换流程图

流程说明:

Standby Master模式

1. 使用持久化引擎读取持久化的storeApps、storeDrivers、storeWorkers,持久化引擎有FileSystemPersistenceEngine和ZookeeperPersistenceEngine

2. 判读如果storedApps、storedDrivers、store的Workers有任何一个非空就继续向后执行.

3. 持久化引擎的Application、Driver、Worker的信息重新注册到Master内部的内存缓存结构中

4. 将Application和Worker的状态都修改为UNKONWN,然后向Application所对应的Driver及Worker发送Standby Master的地址

5. Driver和Worker在接收到Master发送的地址后,返回响应消息给新的Master

6. Master在陆续收到Driver和Worker发送来的响应消息后,会使用completeRecovery()方法对没有发生响应消息的Driver和Worker进行处理,过滤掉它们的信息。

7. 最后调用Master的schedule()方法,对正在等待资源调度的Driver和Application进行调度,比如在某个Worker上启动Driver或者为Application在Worker上启动它的Executor.

源码分析

创建持久化引擎

入口文件包名:org.apache.spark.deploy.master

创建持久化引擎在preStart()方法中,通过spark.deploy.recoveryMode配置参数确定持久化引擎的类别,缺省值为none.

 

持久化数据的处理

 

completeRecovery方法分析

功能:

将Application和Worker过滤出来目前的状态,如果是UNKNOWN的进行遍历,分别调用removeWorker和finishApplication方法,对可能已经故障或者已经死掉的Application和Worker进行清理。

清理过程:1、从内存缓存结构中移除。2、从相关的组件的内存中移除。3、从持久化存储中移除。

时间: 2025-01-15 12:29:30

Spark系列(五)Master主备切换机制的相关文章

Keepalived中Master和Backup主备切换机制浅析

在keepalived的VRRP实例配置中会一般会设置Master和Backup来指定初始状态,但是这并不意味着此节点一直就是Master角色.控制节点角色的是Keepalived配置文件中的"priority"值和vrrp_script模块中设置的"weight"值.下面分别分情况对主备机切换机制作详细说明. 配置简介: 主机 IP 操作系统 软件 VIP 备注 nginx01 172.27.9.91 Centos7 keepalived nginx 172.27

Oracle11g搭建DataGuard及主备切换方法总结【亲测可用】

2019-04-11 分类:Oracle 阅读(2626) 评论(0) 文章目录[隐藏] 一.DataGuard 工作原理 二.搭建环境 三.主库配置 四.备库配置 五.主备切换 一.DataGuard 工作原理 Data Gurad 通过冗余数据来提供数据保护,Data Gurad 通过日志同步机制保证冗余数据和主数之前的同步,这种同步可以是实时,延时,同步,异步多种形式.Data Gurad 常用于异地容灾和小企业的高可用性方案,虽然可以在Standby 机器上执行只读查询,从而分散Prim

mysql主从配置&&基于keepalived的主备切换

mysql互为主从设置 && 主备切换配置 需求说明: 1.公司架构一直是一台单独的mysql在线上跑,虽然一直没有出现什么宕机事件,但是出于一个高可用的考虑,提出主从备份.主备切换的需求: 2.实现这个需求的前一段时间只是在做数据库备份的时候实现了主从热备,为了实现主备切换功能,继续操作上述需求: 实验环境: master1:10.1.156.3:3306 master2:10.1.156.5:3306 my.cnf配置文件关于主从这块的修改: master1: server-id =

测试redis+keepalived实现简单的主备切换

转自: 测试redis+keepalived实现简单的主备切换 - Try My Best 尽力而为 - ITeye技术网站http://raising.iteye.com/blog/2311757 keepalived是一个是集群管理中保证集群高可用的一个服务软件,它具备心跳检测的功能.运用在redis上,则是具备主备切换的控制功能. keepalived的主备切换方案的设计思想如下: 当 Master 与 Slave 均运作正常时, Master负责服务,Slave负责Standby: 当 

Oracle 11.2.0.4.0 Dataguard部署和日常维护(5)-Datauard 主备切换和故障转移篇

1. dataguard主备切换 1.1. 查看当前主备库是否具备切换条件 on slave select sequence#,first_time,next_time,archived,applied from v$archived_log where SEQUENCE#=(select max(SEQUENCE#) from v$archived_log); SEQUENCE# FIRST_TIME NEXT_TIME ARCHIVED APPLIED ---------- --------

keepalived实现redis主备切换

试验目标: 1:主redis发生故障时,从redis自动切换为主redis. 2:主redis恢复正常后,自动降级为从redis. 试验环境: 主redis:192.168.189.138 从redis:192.168.189.131 VIP:192.168.189.123 主从redis均安装了keepalived与redis,redis已配置好主从.Redis端口44444. 1:制作redis监控与主备切换脚本: Redis监控脚本:(监控redis是否正常) # cat /usr/loc

VRRP负载均衡及端口跟踪实现主备切换

VRRP 实验 1. 实现PC1和PC2的流量分别走R1和R2,实现负载均衡2. 跟踪端口,当外部链路出现故障实现主备切换. R1#conf tR1(config)#interface e0/0R1(config-if)#ip address 192.168.1.1 255.255.255.0R1(config-if)#no shutdownR1(config-if)#R1(config-if)#vrrp 10 ip 192.168.1.254 vrrp 10号组虚拟ip地址R1(config-

Redis安装,主从,主备切换

网络环境: 主:10.187.120.5 从:10.187.69.58 从:10.187.69.59 一.安装 mv redis-2.8.19.tar.gz /export/servers/ cd /export/servers/ tar zxf redis-2.8.19.tar.gz cd redis-2.8.19 make && make install 二,主从环境搭建 主:10.187.120.5 conf/redis_6379.conf (src/redis-server con

DRBD主备切换

DRBD主备切换 在系统维护的时候,或者在高可用群集中,当主用节点出现故障的时候,就需要将主备节点的角色互换,主备节点切换有两种形式,分别是停止DRBD服务切换和正常切换 (1) 停止DRBD服务切换 关闭主用节点服务,此时挂载的DRBD分区就自动在主用节点卸载了,操作如下, /etc/init.d/drbd stop cat /proc/drbd (细节请看http://liumingyuan.blog.51cto.com/9065923/1712824) 从输出结果可以看到,现在主用节点的状