文章地址:http://www.haha174.top/article/details/258040
本文主要介绍一下master 的注册流程。
1 worker.
当worker 启动之后,就会主动的向master 进行注册。
master 接收到worker 的注册请求之后,会将状态为DEAD的worker 过滤掉。对于状态为UNKNOWN的worker 节点清理掉worker的信息替换为新的worker 节点。
把worker 的注册信息写入到内存缓存中(hashmap)
用持久化引擎,将worker 信息进行持久化(文件系统,zookeeper)
调用schedule
2.Driver
用spark-submit 提交Application 首先会注册Driver
将Driver 信息写入到内存中
加入等待调度队列
用持久化引擎将driver信息写入到文件系统/zookeeper
调用schedule()
Driver 启动好了之后 执行编写的application代码 执行 Sparkcontext 初始化 底层的 SparkDeploySchedulerBackend 会通过ClientActor 发送RegisterApplication,到master进行Application 注册。
将Application 信息写入内存。
将application 写入对面。
调用持久化将application 写入到文件系统/zookeeper
下面给出一个图解: