在hadoop中,跨映射器还原器多个输入保持状态的能力意味着什么?

时间:2016-10-09 06:37:11

标签: hadoop mapreduce

问题标题解释了我的问题所在。 我一直在阅读多篇文章,答案是我遇到过这一行

  

通过使用组合器并利用其能力   通过多个输入保持状态,通常可以   大大减少键值对的数量和大小   需要从映射器中移动到减速器。

我无法理解这个概念。通过示例进行详细的回答和解释将非常有帮助。如何培养直觉来理解这些概念?

1 个答案:

答案 0 :(得分:0)

如果您已经对“减速器”概念感到满意,那么组合器概念将很容易。可以将组合器视为地图阶段的迷你减速器。我的意思是什么?让我们看一个例子:假设您正在执行经典的wordcount问题,您知道对于每个单词,映射器都会发出键值对。然后,reducer将把这些键值对作为输入并对它们进行汇总。 假设映射器收集一些键值对,如:

<key1,1>,
<key2,1>,
<key1,1>,
<key3,1>,
<key1,1>

如果您没有使用组合器,这4个键值对将被发送到reducer。但是使用组合器我们可以在映射器中执行预缩减,因此映射器的输出将是:

<key1,3>,
<key2,1>,
<key3,1>

在这个使用组合器的简单示例中,您将键值对的总数从5减少到3,这样可以减少网络流量,并在随机播放阶段提供更好的性能。