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 新增

相关推荐

  1. TopicPartition

    2024-01-29 09:40:02       36 阅读
  2. Kafka的分区(partition副本)

    2024-01-29 09:40:02       22 阅读
  3. 链表所有节点

    2024-01-29 09:40:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-29 09:40:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-29 09:40:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-29 09:40:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-29 09:40:02       20 阅读

热门阅读

  1. 无穷大与无穷小【高数笔记】

    2024-01-29 09:40:02       35 阅读
  2. DAY_10(区间dp)

    2024-01-29 09:40:02       32 阅读
  3. 上线服务器流程用法及说明

    2024-01-29 09:40:02       36 阅读
  4. Anaconda中安装包下载超时

    2024-01-29 09:40:02       43 阅读
  5. G1与ZGC

    G1与ZGC

    2024-01-29 09:40:02      42 阅读
  6. 第二百九十三回

    2024-01-29 09:40:02       41 阅读
  7. 【leetcode100-074/075/076】【堆】三题合集

    2024-01-29 09:40:02       35 阅读