一、Shuffle
在大数据处理框架中,例如MapReduce或Spark,处理的数据集通常是分布在多个节点上的。因此,当执行需要重新组织或重分布数据的操作时,就可能需要在集群的节点之间传输数据。这种跨节点的数据重新分布过程被称为“Shuffle”。
Shuffle的主要目的是为了重新分配数据,以便于后续的计算步骤。这可以包括(但不限于):
- 数据重新分区:例如,从一个节点将数据移动到另一个节点以改变数据的物理布局。
- 按键分组数据:例如,将所有具有相同键的数据项组合在一起,以便对它们进行进一步的聚合或处理。
- 全局排序:例如,将数据排序并可能分布到不同的节点,以得到一个全局有序的数据集。
Shuffle是一种将数据从一个阶段的任务重新分发到下一个阶段的任务的过程,这通常涉及以下步骤:
- 分区:基于某个键(例如,数据项的键)将数据划分为多个分区,使