内容
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的整体性能。