MapReduce Shuffling and Sorting

1.目的

在Hadoop中,mapper的中间输出传输到reducer的过程称为Shuffling。 每个Reducer获得一个或多个键和它们的相关值。 由mapper生成的中间键值由键自动排序。

我们将学习Hadoop中的排序,Hadoop中的混洗,MapReduce中的混洗和排序阶段,MapReduce混洗的工作方式以及MapReduce排序的工作原理。

Hadoop中的混洗阶段将Map输出从Mapper传输到MapReduce中的Reducer。 MapReduce中的排序阶段涵盖了Map输出的合并 merging和排序 ordering。来自映射器的数据通过key分组,在reducer之间拆分并按键排序。每个reducer都获取与同一个键相关的所有值。 Hadoop中的混洗和排序阶段同时发生,并由MapReduce框架完成。

现在让我们来了解下面的这些过程:

2.在MapReduce中混洗

将数据从映射器传输到reducer的过程称为混洗?shuffle,即系统执行排序并将mapper输出传输到reducer作为输入的过程。因此,MapReduce混洗阶段对于reducer是必需的,否则它们不会有任何输入(或来自于每个映射器的输出)。因为即使在mapper阶段结束之前混洗也可以开始,节省了一些时间并且在较短的时间内完成了任务。

3.在MapReduce中排序

映射器生成的键由MapReduce Framework自动排序,即在reducer启动之前,MapReduce中由mapper生成的所有中间键值对都按键而不是按值排序。传递给每个reducer的值不会被排序;他们可以以任何顺序。

在Hadoop中排序可帮助Reducer轻松区分何时应启动新的Reduce任务。这为reducer节省了时间。当排序后的输入数据中的下一个键与前一个键不同时,Reducer开始一个新的reducer任务。每个reduce任务都将键值对作为输入并生成键值对作为输出。

请注意,如果您指定了零reducer(setNumReduceTasks(0)),则Hadoop MapReduce中的混洗和排序完全不会执行。然后,MapReduce作业在map阶段停止,并且map阶段不包括任何种类的排序(这样以来map阶段更快)。

4.在MapReduce中进行二次排序

如果我们想对reducer的值进行分类,则使用二次排序技术,因为它使我们能够对传递给每个reducer的值(按升序或降序)进行排序。

5.结论

总之,Shuffling-Sorting同时发生,以总结Mapper中间输出。如果您指定了零mapper(setNumReduceTasks(0)),则在Hadoop MapReduce中进行混排和排序根本不会执行。

MapReduce Shuffling and Sorting

发表评论

邮箱地址不会被公开。 必填项已用*标注

九十 六 ÷ = 三十 二

滚动到顶部