当前位置:  开发笔记 > 大数据 > 正文

用于排序mapreduce中间密钥的网络带宽瓶颈?

如何解决《用于排序mapreduce中间密钥的网络带宽瓶颈?》经验,为你挑选了1个好方法。

我一直在学习mapreduce算法以及它如何可能扩展到数百万台机器,但我不明白在地图阶段之后如何对中间键进行排序,因为它将会:

1,000,000 x 1,000,000

:潜在的机器相互传递中间结果的小键/值对?这不是瓶颈吗?



1> Binary Nerd..:

Hadoop MapReduce的一个瓶颈是群集中机器之间的网络带宽.但是,每个映射阶段的输出不会发送到群集中的每台计算机.

map和reduce函数的数量由您正在运行的作业定义.每个映射处理其输入数据,对其进行排序以对密钥进行分组并将其写入磁盘.该作业定义了您希望应用于地图输出的减少功能的数量.

每个reduce都需要查看给定密钥的所有数据.因此,如果您为作业运行了单个reduce,则需要将每个映射的所有输出发送到运行该reduce的集群中的节点.在reduce运行之前,将合并每个映射的数据以对所有键进行分组.

如果使用多个reducer,则map会对其输出进行分区,每次reduce会创建一个.分区被发送到正确的reduce.这确保了单个reduce处理给定键的所有数据.

为了帮助减少需要通过网络发送的数据量,您可以将合并功能应用于地图的输出.这具有对地图输出执行减少的效果.因此,您可以最大限度地减少需要传输到Reducer的数据量,并加快整个作业的执行时间.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有