MapReduce Combiner

1. Hadoop MapReduce Combiner

Hadoop Combiner也称为“Mini-Reducer”,它在传递给Reducer之前用相同的Key总结Mapper输出记录。 在本章中,我们将回答什么是Hadoop Combiner, Hadoop Combiner的优点以及Hadoop中Combiner的缺点。

2. 什么是Hadoop组合器?

在我们运行MapReduce作业的大型数据集上,Mapper会生成大量的中间数据,并将这些中间数据传递给Reducer进行进一步处理,从而导致巨大的网络拥塞。 MapReduce框架提供了一种称为Hadoop组合器的功能,在减少网络拥塞方面起着关键作用。

MapReduce中的Combiner也被称为“Mini-Reducer”。 Combiner的主要工作是在传递给Reducer之前处理来自Mapper的输出数据。它在映射器之后并且在Reducer之前运行,并且它的使用是可选的。

3. MapReduce组合器如何工作?

现在让我们看看MapReduce中的Hadoop组合器的工作情况,以及使用组合器时的情况与MapReduce中未使用组合器的情况相比如何变化?

3.1 没有组合器的MapReduce程序

在上图中,没有使用组合器。 输入分成两个映射器,9个键从映射器生成。 现在我们有(9个键/值)中间数据,进一步的映射器将直接发送这个数据给reducer,并且在向reducer发送数据时,会消耗一些网络带宽(带宽意味着在两台机器之间传输数据所需的时间)。 如果数据量很大,则需要更多时间将数据传输到Reducer。

如果我们使用hadoop组合器,现在在mapper和reducer之间,然后组合器将中间数据(9个键/值)生成4个键/值对作为输出发送给reducer。

3.2  在Mapper和Reducer之间使用Combiner进行MapReduce程序

Reducer现在只需要处理由2个组合器生成的4个键/值对数据。因此reducer只执行4次以产生最终输出,这增加了总体性能。

4. MapReduce Combiner的优点

正如我们已经详细讨论了Hadoop MapReduce组合器,现在我们将讨论Mapreduce组合器的一些优点。

Hadoop Combiner减少了mapper和reducer之间数据传输所需的时间。

它减少了需要由reducer处理的数据量。

Combiner提高了reducer 节点的整体性能。

5. MapReduce中Hadoop组合器的缺点

hadoop Combiner也有一些缺点。

MapReduce job不能依赖于Hadoop combiner的执行,因为combiner的执行没有保证。

在本地文件系统中,键值对存储在Hadoop中,稍后运行组合器,这会导致昂贵的磁盘IO代价。

6. Hadoop组合器 – 结论

总之,我们可以说MapReduce组合器在减少网络拥塞方面起着关键作用。通过汇总Mapper的输出,MapReduce组合器可以提高reducer的整体性能。

MapReduce Combiner

发表评论

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

二十 七 + = 三十 五