Advertisement

Spark partitioning mechanism for hash and range partitioners (global ordering)

阅读量:

Spark分区器

在Spark中使用适当的表观结构设计可以有效地管理数据分布情况。当数据通过Shuffle阶段时不仅决定了其所在的特定区组还直接影响其参与并行计算的任务分配效率。值得注意的是仅限于键值对类型的数据集才会拥有有效的区组划分而非键值对类型的数据集其区组划分会被设定为None状态。
spark支持两种主要类型的表观设计:哈希型表观设计(HashPartitioner)与范围型表观设计(RangePartitioner)。这些表观设计均继承自基础类库中的Tableau接口并负责将输入数据划分为若干个功能独立且易于管理的部分。

HashPartitioner分区

HashPartitioner分区的工作原理较为简单明了。对于任意给定的关键字(key),程序会首先计算其哈希码(hashCode),然后对该哈希码进行模运算(取余运算),最终得到的结果就是该key所属的具体分区ID。

RangePartitioner分区

通过分析HashPartitioner分区实现的工作原理可以看出,这种分块策略可能导致各个分区中的数据量分布不均,从而影响整体系统的负载均衡性.相比之下,RangePartitioner通过巧妙的设计,尽量使每个分区内存储的数据量趋于均匀,同时各分区之间保持有序性,但各分区内内部元素之间的相对顺序则无法得到保证.值得注意的是,so

全部评论 (0)

还没有任何评论哟~