Spark Exchange节点和Partitioning

​Exchange

在explain时,常看到Exchange节点,这个节点其实就是发生了数据交换


此图片来自于网络截取

BroadcastExchangeExec 主要是用来广播的

ShuffleExchangeExec 里面决定了数据分布的方式和采用哪种shuffle

在这里可以看到好几种不同的分区器

shufleManager创建不同的shuffle方式

Distribution与Partitioning

Distribution与Partitioning关联,定义了数据在集群各个节点上的分布情况

Distribution:

有6个子类

Partitioning和对应的子类

|----------------------------------------|----------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|--------------------------|
| Distribution子类 | 描述 | 算子示例 | 调用createPartitioning()方法 |
| UnspecifiedDistribution | 未指定分布,无需确定数据元组之间的位置关系 | | 抛出异常 |
| AllTuples | 只有一个分区,所有的数据元组存放在一起 | 例如GlobalLimit算子 | SinglePartition |
| BroadcastDistribution | 广播分布,数据会广播到所有节点上,构造参数mode为广播模式(BroadcastMode) | 例如Broadcast的Join操作中的requiredChildDistribution为[BroadcastDistribution(mode)] | BroadcastPartitioning |
| ClusteredDistribution | 构造参数clustering是Seq[Expression]类型,起到哈希函数的效果,经过clustering之后,相同的value数据会放到一个分区中 | 例如SortAggregateExec类型的Join操作中的requiredChildDistribution就是ClusteredDistribution(exprs) | HashPartitioning |
| HashClusteredDistribution 3.3 移出 | 构造参数expressions是Seq[Expression]类型,起到哈希函数的效果,经过expressions之后,相同的value数据会放到一个分区中 | 例如SortMerge类型的Join操作中的requiredChildDistribution就是[HashClusteredDistribution(leftKeys), HashClusteredDistribution(reghtKeys)] | HashPartitioning |
| OrderedDistribution | 构造参数ordering是Seq[SortOrder]类型,数据会根据ordering计算后的结果排序 | 例如在全局的Sort算子中,requiredChildDistribution就是[OrderedDistribution(sortOrder)] | RangePartitioning |
| StatefulOpClusteredDistribution 3.3 新增 | | | |

相关推荐
深空数字孪生4 小时前
储能调峰新实践:智慧能源平台如何保障风电消纳与电网稳定?
大数据·人工智能·物联网
百胜软件@百胜软件4 小时前
胜券POS:打造智能移动终端,让零售智慧运营触手可及
大数据
摩羯座-185690305945 小时前
Python数据可视化基础:使用Matplotlib绘制图表
大数据·python·信息可视化·matplotlib
在未来等你5 小时前
Kafka面试精讲 Day 13:故障检测与自动恢复
大数据·分布式·面试·kafka·消息队列
jiedaodezhuti6 小时前
Flink通讯超时问题深度解析:Akka AskTimeoutException解决方案
大数据·flink
庄小焱6 小时前
大数据存储域——Kafka实战经验总结
大数据·kafka·大数据存储域
zskj_qcxjqr7 小时前
告别传统繁琐!七彩喜艾灸机器人:一键开启智能养生新时代
大数据·人工智能·科技·机器人
每日新鲜事8 小时前
Saucony索康尼推出全新 WOOOLLY 运动生活羊毛系列 生动无理由,从专业跑步延展运动生活的每一刻
大数据·人工智能
在未来等你8 小时前
Kafka面试精讲 Day 15:跨数据中心复制与灾备
大数据·分布式·面试·kafka·消息队列
计算机编程-吉哥10 小时前
大数据毕业设计-基于Python的中文起点网小说数据分析平台(高分计算机毕业设计选题·定制开发·真正大数据)
大数据·hadoop·计算机毕业设计选题·机器学习毕业设计·大数据毕业设计·大数据毕业设计选题推荐·大数据毕设项目