这篇文章我们来讨论一下Master的注册机制;那么有哪些信息需要注册到Master上面去呢?很简单,分别有Worker的注册,Driver的注册,Application的注册。明确了这个以后我们来看一张图;
关于Worker和Driver的注册,上面图中已经说的很详细了,我们着重来看看Application的注册流程是如何实现的。
1.在Driver注册完成之后,接着执行Application代码,初始化SparkContext,通过 SparkDeploySchedulerBackend的AppClient内部的线程,ClientActor发送RegisterApplication到Master进行注册;
2.Master接收到请求后,将Application信息写入到内存缓冲中,并将其加入到等待调度队列中;
3.使用持久化引擎将数据进行持久化操作,最后调用Schedule开始相关任务的调度执行;
下面我们看看spark源码是怎么对其进行实现的。
解释:上图中的sender其实是代表了ClientActor,所以会讲Application的注册信息发送给ClientActor。
总结,本篇内容较短,但是完整的阐述了Worker,Driver,Application的注册机制,下篇会来阐述一下我们的Driver,Application注册完成以后的scheduler调度是如何实现的,同时也是非常非常重要的一个环节,欢迎关注。如需转载,请注明: