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

原理剖析

SparkContext原理剖析.png

源码解读

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

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

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


1.png

看图1的createTaskScheduler方法


2.png

看图2的new TaskSchedulerImpl(sc)
3.png

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

回到图2看scheduler.initialize(backend)


4.png

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


5.png

看图5的backend.start()
6.png

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


7.png

看图6的client.start()
8.png

看图8的new ClientActor
9.png

你可能感兴趣的:(33、Spark内核源码深度剖析之SparkContext原理剖析与源码分析)