大数据之 spark 任务划分

本文详细介绍了ApacheSpark中任务划分的过程,包括Job、Stage、TaskSet和Task的概念,以及ShuffleMapTask和ResultTask的区分。重点阐述了并行度设置与资源调度如何影响性能,以及DAGScheduler和TaskScheduler在任务调度中的作用。
摘要由CSDN通过智能技术生成

Apache Spark 中的任务划分(Task Scheduling)是一个关键的优化过程,它影响到整个Spark作业执行的效率和性能。以下是Spark中任务划分的基本概念:

  1. Application (应用程序)

    • 当启动一个Spark应用程序时,会初始化一个SparkContext,这标志着一个新的Spark应用实例的开始。
  2. Job (作业)

    • 在Spark中,当用户调用一个Action操作(如count()saveAsTextFile()等)时,会触发一次Job提交。每个Job代表一个完整的数据处理流程,从读取数据源开始直到最终生成结果。
  3. Stage (阶段)

    • Job被划分为一系列的Stage,每个Stage是由一组并行的、相互之间没有shuffle依赖关系的任务组成的。Stage的划分主要基于RDD之间的依赖关系:窄依赖可以在一个Stage内完成;而遇到宽依赖(比如groupByKeyreduceByKey等操作)时,则会在该点划分新的Stage。
  4. TaskSet (任务集)

    • 每个Stage对应一个TaskSet,即一组并行的任务集合。Task的数量取决于Stage最后一个RDD分区的数量,以及是否涉及到shuffle阶段。
  5. Task (任务)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值