spark任务调度和资源框架

本文详细介绍了Spark的任务调度过程,从Driver构建SparkContext,DAGScheduler划分Stage,到TaskScheduler分配Task到Executor。讨论了standalone模式、Client模式和Cluster模式下Spark任务的提交与执行流程,涉及Executor启动、Task执行以及资源管理等方面。
摘要由CSDN通过智能技术生成

spark的任务调度在这里插入图片描述

  • Driver会运行客户端main方法中的代码,代码就会构建SparkContext对象,在构建SparkContext对象中,会创建DAGScheduler和TaskScheduler,然后按照rdd一系列的操作生成DAG有向无环图。最后把DAG有向无环图提交给DAGScheduler
  • DAGScheduler拿到DAG有向无环图后,按照宽依赖进行stage的划分,这个时候会产生很多个stage,每一个stage中都有很多可以并行运行的task,把每一个stage中这些task封装在一个taskSet集合中,最后提交给TaskScheduler
  • TaskScheduler拿到taskSet集合后,依次遍历每一个task,最后提交给worker节点的exectuor进程中。task就以线程的方式运行在worker节点的executor进程中。

standalone模式

  • 使用sparksubmit提交任务,Driver运行在Client上
  • 使用本地的Client类的main函数创建sparkcontext并初始化它
  • sparkcontext连接到Master,注册并申请资源
  • master根据sc提出的申请,根据worker的心跳报告,来决定在哪个worker上启动executor
  • executor向sc注册,sc将应用分配给executor
  • sc解析应用,创建DAG图,提交给DAGScheduler进行分解成stage,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值