码迷,mamicode.com
首页 > 其他好文 > 详细

Spark: Job in detail

时间:2017-08-01 12:53:15      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:调用   传递   ted   mitm   backend   runner   计算   完成   receiver   

1、sc.runJob -> dagScheduler.runJob -> submitJob  

2、DAGSchedueler::submitJob 会创建 JobSubmitted 的 event 发给内嵌类 eventProcessActor

3、eventPRocessActor 在接收到 JobSubmmitted 之后调用 processEvent 处理函数

4、job 到 stage 的转换,生成 finalStage 并提交运行,关键是调用 submitStage

5、在 SubmitStage 中会计算 stage 之间的依赖关系,依赖关系分为宽依赖和窄依赖两种

6、如果计算中发现当前的 stage 没有任何依赖或者所有的依赖都已经准备完毕,则提交 task

7、提交 task 是调用函数 submitMissingTasks 来完成

8、task 真正运行在哪个 worker 上由 TaskScheduler 来管理,也就是 submitMissingTasks 会调用 TaskScheduler::submitTasks

9、TaskSchedulerImpl 中会根据 Spark 的当前运行模式来创建相应的 backend,如果是在单机运行则创建 LocalBackend

10、LocalBackend 收到 TaskSchedulerImpl 传递进行的 ReceiveOffers 事件

11、receiverOffers -> executor.launchTask -> TaskRunner.run

Spark: Job in detail

标签:调用   传递   ted   mitm   backend   runner   计算   完成   receiver   

原文地址:http://www.cnblogs.com/m2492565210/p/7267364.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!