33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析

原理剖析

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第1张图片

SparkContext原理剖析.png

源码解读

本系列文章spark版本为1.3.0
入口org.apache.spark.SparkContext
SparkContext要点

  1. TaskScheduler如何注册application,executor如何反向注册
  2. DAGScheduler
  3. SparkUI

本文主要分析1TaskScheduler的相关代码

 

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第2张图片

1.png

 

看图1的createTaskScheduler方法

 

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第3张图片

2.png


看图2的new TaskSchedulerImpl(sc)

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第4张图片

3.png

 

继续看图2的new SparkDeploySchedulerBackend(scheduler, sc, masterUrls)
SparkDeploySchedulerBackend,它在底层会接收TaskSchedulerImpl的控制,实际上负责与Master的注册,Executor反注册,task发送到executor等
TaskSchedulerImpl底层实际主要基于SparkDeploySchedulerBackend来工作

回到图2看scheduler.initialize(backend)

 

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第5张图片

4.png

 

创建SchedulePool,它有不同的优先策略,比如FIFO
然后回到图1 看 taskScheduler.start()

 

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第6张图片

5.png


看图5的backend.start()

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第7张图片

6.png

 

看图6的client = new AppClient(sc.env.actorSystem, masters, appDesc, this, conf)

 

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第8张图片

7.png


看图6的client.start()

13274599-1309aaf68aac2182.png

8.png


看图8的new ClientActor

33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析_第9张图片

9.png

你可能感兴趣的:(Spark入坑)