问题标题解释了我的问题所在。 我一直在阅读多篇文章,答案是我遇到过这一行
通过使用组合器并利用其能力 通过多个输入保持状态,通常可以 大大减少键值对的数量和大小 需要从映射器中移动到减速器。
我无法理解这个概念。通过示例进行详细的回答和解释将非常有帮助。如何培养直觉来理解这些概念?
答案 0 :(得分:0)
如果您已经对“减速器”概念感到满意,那么组合器概念将很容易。可以将组合器视为地图阶段的迷你减速器。我的意思是什么?让我们看一个例子:假设您正在执行经典的wordcount问题,您知道对于每个单词,映射器都会发出键值对。然后,reducer将把这些键值对作为输入并对它们进行汇总。 假设映射器收集一些键值对,如:
<key1,1>,
<key2,1>,
<key1,1>,
<key3,1>,
<key1,1>
如果您没有使用组合器,这4个键值对将被发送到reducer。但是使用组合器我们可以在映射器中执行预缩减,因此映射器的输出将是:
<key1,3>,
<key2,1>,
<key3,1>
在这个使用组合器的简单示例中,您将键值对的总数从5减少到3,这样可以减少网络流量,并在随机播放阶段提供更好的性能。