Master对其他组件注册的处理
1.Master接受注册的对象主要就是:Driver、Application、Worker;Executor是注册在Driver中的SchedulerBackend的
2.Worker是在启动后,主动向Master注册的,所以如果在生产环境下加入新的Worker到已经正在运行的Spark集群上,此时不需要重新启动Spark集群就可以使用新加入的Worker以提升处理能力。
3.Master在接受到Worker注册的请求后,首先会判断一下当前的Master是否是Standby的模式,如果是的话就不处理,然后会判断当前的Master内存的数据结构idToWorker中是否已经有该Worker的注册信息,如果有的话此时不会重复注册。
4.Master如果决定接收注册的Worker,首先会创建Workerinfo对象来保存注册的Work的信息,然后调用Registerworker来执行具体的注册的过程,如果Worker的状态是DEAD的,则直接过滤,对于UNKNOWN状态的内容调用removeWorker进行清理(包括清理该Worker下的Executors和Drivers)。
5.注册时,先注册Driver,然后再注册Application(SchedulerBackend去注册)