首页 > 代码库 > Spark: Job in detail
Spark: Job in detail
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。