Spark技术内幕:Master的故障恢复

本文深入探讨Spark Master基于ZooKeeper的高可用性实现,详细讲解了Master如何进行快速故障恢复。在接收到ElectedLeader消息后,Standby状态的Master开始恢复Application和Worker的元数据信息。通过ZooKeeperLeaderElectionAgent接口,Master逐个恢复Application和Worker状态,完成恢复过程。同时,文章讨论了默认60秒的超时设置是否合理,并介绍了通过`spark.worker.timeout`配置自定义超时时间。
摘要由CSDN通过智能技术生成

Spark技术内幕:Master基于ZooKeeper的High Availability(HA)源码实现  详细阐述了使用ZK实现的Master的HA,那么Master是如何快速故障恢复的呢?

处于Standby状态的Master在接收到org.apache.spark.deploy.master.ZooKeeperLeaderElectionAgent发送的ElectedLeader消息后,就开始通过ZK中保存的Application,Driver和Worker的元数据信息进行故障恢复了,它的状态也从RecoveryState.STANDBY变为RecoveryState.RECOVERING了。当然了,如果没有任何需要恢复的数据,Master的状态就直接变为RecoveryState.ALIVE,开始对外服务了。

一方面Master通过

beginRecovery(storedApps, storedDrivers, storedWorkers) 


恢复Application,Driver和Worker的状态,一方面通过

recoveryCompletionTask = context.system.scheduler.scheduleOnce(WORKER_TIMEOUT millis, self,
          CompleteRecovery)


在60s后主动向自己发送CompleteRecovery的消息,开始恢复数据完成后的操作。

首先看一下如何通过ZooKeeperLeaderElectionAgent提供的接口恢复数据。

  override def r
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值