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

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

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

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

进入其实现者TaskSchedulerImpl内部:

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

 

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

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

其最终具体的实现类为:

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

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

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

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

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

AppClient会调用start方法:

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

此时启动了ClientActor:

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

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

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

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

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

相关文章:

  • 2021-07-14
  • 2021-10-28
  • 2021-09-14
  • 2021-09-17
  • 2021-12-18
  • 2022-01-03
猜你喜欢
  • 2022-01-01
  • 2021-12-18
  • 2021-06-01
  • 2021-09-25
  • 2021-10-27
  • 2021-11-11
相关资源
相似解决方案