简述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个分区数据,可以根据实际情况进行优化调参数。

相关推荐
SeaTunnel14 分钟前
【同步教程】基于Apache SeaTunnel从MySQL同步到MySQL——Demo方舟计划
大数据·人工智能·apache·etl
小冻梨!!!22 分钟前
aspark 配置2
spark
群联云防护小杜1 小时前
基于AI的Web应用防火墙(AppWall)实战:漏洞拦截与威胁情报集成
前端·分布式·安全·ddos
老友@3 小时前
Elasticsearch 全面解析
大数据·elasticsearch·搜索引擎
云之兕3 小时前
分布式ID生成器设计详解
分布式
不懂的浪漫3 小时前
分布式限流器框架 eval-rate-limiter
分布式
Gvemis⁹3 小时前
Spark Core(二)
大数据·分布式·spark
小薛博客4 小时前
架构设计之Redisson分布式锁-可重入同步锁(一)
java·redis·分布式
wgslucky4 小时前
Jmeter分布式测试启动
分布式·jmeter
AWS官方合作商4 小时前
AWS Bedrock:开启企业级生成式AI的钥匙【深度解析】
大数据·人工智能·aws