高可用Spark集群的主备切换过程(原理概要)

Spark在standalone运行模式下,可以配置spark master的HA,当active master节点宕机,就能把standby master切换成active。

主备切换的机制有2种:

(1)基于文件系统的切换——在active master挂掉后,手动切换到standby master节点上。

(2)基于zookeeper的切换——自动切换master。

 

那么,活跃节点宕机以后,待命节点 standby master做了哪些操作?

    步骤1:standby节点首先会去读取已经持久化了的storedApplication、storedDriver、storedWorkers,如果他们之一有任意一个非空的,就把它们注册到standby节点的内存当中

    步骤2:将application和workers的状态都修改为Unkown,然后向应用程序对应的driver和worker发送standby master的地址,“让小弟知道谁是新的老大”。

    步骤3:正在正常运行的driver和worker在上一步收到地址后,会向standby master节点发送响应信息。

    步骤4:standby节点收到响应信息后,会调用自身的completeRecovery()方法处理未发送响应信息的driver和worker,把它们滤掉,造成的结果是不对那些driver和对应的application分配资源。

    步骤5:此时,新的active master已经产生了,那么master会调用自身的schedule()方法,对那些等待资源调度的driver、application进行调度。例如为application在worker节点启动该application所需的Executor、在某个worker节点启动driver

 

你可能感兴趣的:(scala,&,spark)