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)
recoveryCompletionTask = context.system.scheduler.scheduleOnce(WORKER_TIMEOUT millis, self,
CompleteRecovery)
首先看一下如何通过ZooKeeperLeaderElectionAgent提供的接口恢复数据。

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





