Spark任务划分概念

Application


使用 SparkSubmit 提交的个计算应用,一个 Application 中可以触发多次 Action,触发一次 Action 产生一个 Job,一个 Application 中可以有一到多个 Job

Job


Driver 向 Executor 提交的作业,触发一次 Acition 形成一个完整的 DAG,一个 DAG 对应一个 Job,一个 Job 中有一到多个 Stage,一个 Stage 中有一到多个 Task


DAG


概念:有向无环图,是对多个 RDD 转换过程和依赖关系的描述,触发 Action 就会形成一个完整的DAG,一个 DAG 对应一个 Job


Stage


概念:任务执行阶段,Stage 执行是有先后顺序的,先执行前的,在执行后面的,一个 Stage 对应一个TaskSet,一个 TaskSet 中的 Task 的数量取决于 Stage 中最后一个 RDD 分区的数量


Task


概念:Spark 中任务最小的执行单元,Task 分类两种,即 ShuffleMapTask 和 ResultTask

ShuffleMapTask输出的是shuffle分区结果

ResultTask输出的是最终结果

Task 的数量决定并行度,同时也要考虑可用的 cores

task中就是对FinalRdd(最后一个RDD)的迭代器的调用。


TaskSet


保存同一种计算逻辑多个 Task 的集合,一个 TaskSet 中的 Task 计算逻辑都一样,计算的数据不一样

  • spark源头Rdd会将数据源切分成多个分片并行处理,那么就有4个算子链
  • 将算子链根据是否shuffle进行拆分,reduceBykey会进行shuffle操作,因此产生两个stage
    • 第一个stage包含4个分区用4个task调度,这四个task就组成了一个taskset,这4个task不对外输出,只是中间流程,因此叫做shuffleMapTask
    • 第二个由于reduceByKey修改了分区数,所以变成了两个分区,那就用两个task调度,这两个task就组成了另一个taskset,这两个task是对外输出的因此叫做ResultTask
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值