总览
一、master主备切换
-
Master实际上可以配置两个,那么Spark原生的 standalone模式是支持Master主备切换的。也就是说,当 Active Master节点挂掉的时候,我们可以将 Standby Master切换为 Active Master;
-
Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于 ZooKeeper的。基于文件系统的主备切换机制,需要在 Active master挂掉之后,由我们手动去切换到 Standby Master上;而基于 ZooKeeper的主备切换机制,可以实现自动切换 Master所以,这里要说的 Master主备切换机制,实际上指的就是,在 Active master挂掉之后,切换到 tandby Master时, Masters会做哪些操作.
二、源码查看
completeRecovery()
功能:
将Application和Worker过滤出来目前的状态,如果是UNKNOWN的进行遍历,分别调用removeWorker和finishApplication方法,对可能已经故障或者已经死掉的Application和Worker进行清理。
清理过程:1、从内存缓存结构中移除。2、从相关的组件的内存中移除。3、从持久化存储中移除。
创建持久化引擎
入口文件包名:org.apache.spark.deploy.master
创建持久化引擎在preStart()方法中,通过spark.deploy.recoveryMode配置参数确定持久化引擎的类别,缺省值为none.
持久化数据的处理