Spark调度系统原理

调度流程图

调度步骤 

  1. Spark Driver启动后,创建DAGScheduler、TaskScheduler和SchedulerBackend。

  2. SchedulerBackend向Yarn Resource Manager(RM)注册,并开始接收来自Executor的心跳消息。

  3. DAGScheduler将DAG图转换成一系列Stage(根据宽依赖关系拆分)。

  4. DAGScheduler向TaskScheduler提交Stage。

  5. TaskScheduler将Stage分成TaskSet,将TaskSet转化成TaskDescription,并将TaskDescription封装在Container Request中发送给Yarn RM。

  6. Yarn RM分配Node Manager(NM)并将Container Request发送给对应的NM。

  7. NM接收到Container Request后,启动Executor容器,并将TaskDescription发送给TaskScheduler。

  8. TaskScheduler向SchedulerBackend发送Task Assigned消息,告知哪个Executor负责执行Task。

  9. SchedulerBackend向相应Executor发送Task Launch消息,告知该Executor启动Task。

  10. Executor启动后,根据Task的要求,执行具体的计算任务。

  11. ExecutorBackend将Task的计算结果封装成TaskResult,发送给SchedulerBackend。

  12. SchedulerBackend将TaskResult发送给TaskScheduler。

  13. TaskScheduler将TaskResult发送给DAGScheduler。

  14. DAGScheduler根据TaskResult更新DAG图的状态。

  15. 重复步骤3-14,直到DAG图的所有Task都被执行完成。

Spark编译打包一次的时间太久了

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值