原理剖析
SparkContext原理剖析.png
源码解读
本系列文章spark版本为1.3.0
入口org.apache.spark.SparkContext
SparkContext要点
- TaskScheduler如何注册application,executor如何反向注册
- DAGScheduler
- 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