一:Master HA解析
1, 生产环境下一般采用Zookeeper做HA,且建议为3台Master,Zookeeper会自动化管理 Master的切换;
2, 采用Zookeeper做HA的时候,Zookeeper会负责保存整个Spark集群运行时候的元数据:workers、Drivers、Applications、Executors;
3, Zookeeper遇到当前Active级别的Master出现故障的时候会从StandbyMaster中选取一台作为Active Master,但是要注意,被选举后到成为真正的ActiveMaster之间需要从Zookeeper中获取集群当前运行状态的元数据信息并进行恢复;
4, 在Master切换的过程中,所有的已经在运行的程序皆正常运行!因为Spark Application在运行前就已经通过ClusterManager获得了计算资源,所以在运行时Job本身的调度和处理和Master是没有任何关系的!
5, 在Master的切换过程中唯一的影响是不能提交新的job:一方面不能提交新的应用程序给集群,因为只有ActiveMaster才能接受新的程序的提交请求;另外一方面,已经运行的程序中也不能够因为Action操作触发新的Job的提交请求;
二:MasterHA的四大方式
1, MasterHA的四大方式分别是:Zookeeper、filesystem、custom、none
2, 需要说明的是:
a) Zookeeper是自动管理Master
b) Filesystem的方式在Master出现故障后需要手动重启机器,机器启动后会立即成为Active级别的Master来对外提供服务(接受应用程序提交的请求、接受新的Job运行的请求)
c) Custom的方式允许用户定义MasterHA的实现,这对于高级用户特别有用;
d) None,这是默认情况,当我们下载安装了Spark集群中就是采用这种方法;该方式不会持久化集群的数据,Master启动后立即管理集群,