简述Spark的宽窄依赖以及Stage是怎么划分的以及每个stage又是怎么划分task任务数

首先是Spark宽窄依赖的定义:

简单来理解的话,窄依赖就是父RDD的每个分区最多被一个子RDD所依赖,是一对一依赖,这种情况的操作例如union,flatMap这样的操作,不会产生shuffle。

宽依赖有别名叫做shuffle依赖,就是父RDD的每个分区会被多个子RDD所依赖,例如ReduceByKey,join这样的操作,会产生shuffle

所以划分Stage的边界就是宽依赖,而窄依赖会被流水线话的合并到同一个Stage中进行处理

在Stage中,决定Task数量有两方面的task数据:

一方面是shuffle中的shuffleMapStage的task数据会根据上游EDD的分区数进行划分,有多少个分区就有多少个Task数据。

另外的resultSta的task数据则会根据下游最终那个RDD的需要所分区数据进行分区,这里我们可以进行通过参数控制task的数据,那么就会有200个task任务数,默认是200个分区数据,可以根据实际情况进行优化调参数。

相关推荐
开利网络14 分钟前
敏捷开发,快速验证:45天让智能体跑起来的落地方法论
大数据·敏捷流程
Crazy CodeCrafter15 分钟前
房租年年涨,客流年年少,服装店还要开吗?
大数据·运维·微信·自动化·开源软件
一只努力的微服务20 分钟前
【Calcite 系列】深入理解 Calcite 的 AggregateValuesRule
大数据·数据库·calcite·优化规则
2601_9553631528 分钟前
技术赋能B端拓客:号码核验行业的痛点破解与高质量发展之路,氪迹科技法人股东核验系统,阶梯式价格
大数据·人工智能
2601_9485960532 分钟前
勇毅领航,共创未来!汉高亮相第27届中国胶粘剂和胶粘带行业年会
大数据·人工智能
极光代码工作室1 小时前
基于Hadoop的日志数据分析系统设计
大数据·hadoop·python·数据分析·数据可视化
iPadiPhone1 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
武子康2 小时前
大数据-255 离线数仓 - Apache Atlas 数据血缘与元数据管理实战指南
大数据·后端·apache hive
递归尽头是星辰2 小时前
Flink 四大基石:核心原理与实战速查
大数据·人工智能·flink·实时计算
jinanwuhuaguo3 小时前
OpenClaw深度沟通渠道-全景深度解构
大数据·开发语言·人工智能·openclaw