Application向Master注册工作流程:
1.Driver启动后,执行Application注册,SparkContext初始化时,SparkDeploySchedulerBackend会通过AppClient内部线程ClientActor发送RegisterApplication到Master进行注册。
2.将Application信息放入内存缓存(HashMap)
3.将Application加入等待调度的Application队列(ArrayBuffer),并将Application信息持久化。
Driver向Master注册工作流程:
1.用spark-submit提交Application给spark时,会注册Driver。
2.将Driver信息放入内存缓存中(HashMap结构)。
3.加入等待调度队列(ArrayBuffer),并将dirver信息持久化。
Worker向Master注册工作流程:
1.worker启动之后,主动向Master注册。
2.master将状态为DEAD的worker过滤掉,对状态为UNKNOWN的worker清理掉旧的worker信息,替换为新的worker信息。
3.把worker加入内存缓存中(HashMap),并将worker信息进行持久化(文件系统、zookeeper)。