spark内核揭秘-11-Driver中AppClient源码分析

首先从SparkContext中TaskScheduler实例的创建开始:

spark内核揭秘-11-Driver中AppClient源码分析_第1张图片

进入taskScheduler.start()方法内部:

spark内核揭秘-11-Driver中AppClient源码分析_第2张图片

进入其实现者TaskSchedulerImpl内部:

spark内核揭秘-11-Driver中AppClient源码分析_第3张图片


可以发现在start具体实现的内部首先是有个backend.start方法:

spark内核揭秘-11-Driver中AppClient源码分析_第4张图片

其最终具体的实现类为:

spark内核揭秘-11-Driver中AppClient源码分析_第5张图片

spark内核揭秘-11-Driver中AppClient源码分析_第6张图片

spark内核揭秘-11-Driver中AppClient源码分析_第7张图片

spark内核揭秘-11-Driver中AppClient源码分析_第8张图片

从代码中可以看出,我们把CoarseGrainedExecutorBackend封装成command,然后交给appDesc,接着交给了Appclient,此时的AppClient就是客户端程序!

AppClient会调用start方法:

spark内核揭秘-11-Driver中AppClient源码分析_第9张图片

此时启动了ClientActor:

spark内核揭秘-11-Driver中AppClient源码分析_第10张图片

spark内核揭秘-11-Driver中AppClient源码分析_第11张图片

spark内核揭秘-11-Driver中AppClient源码分析_第12张图片

关于AppClient的代码,在我之前的博客文章已经分析了,此处俺就不分析了

下一篇要分析registerWithMaster() 和 tryRegisterAllMasters()方法

你可能感兴趣的:(command,AppClient)