12

我希望我以正确的方式问这个问题。我正在学习围绕 Elastic MapReduce 的方法,并且我已经看到许多关于可与“流”作业流程一起使用的“聚合”减速器的参考资料。

在 Amazon 的“Amazon Elastic MapReduce 简介”PDF 中,它指出“Amazon Elastic MapReduce 有一个名为聚合的默认减速器”

我想知道的是:是否有其他可用的默认减速器?

我知道我可以编写自己的减速器,但我不想最终编写已经存在的东西并“重新发明轮子”,因为我确信我的轮子不会像原来的那样好。

4

2 回答 2

8

他们提到的减速器记录在这里:

http://hadoop.apache.org/docs/stable/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html

这是一个内置在流式实用程序中的 reducer。它通过编写一个输出以特殊方式格式化的键的映射器来提供一种简单的方法来进行通用计算。

例如,如果您的映射器输出:

LongValueSum:id1\t12
LongValueSum:id1\t13
LongValueSum:id2\t1
UniqValueCount:id3\tval1
UniqValueCount:id3\tval2

reducer 将计算每个 LongValueSum 的总和,并计算 UniqValueCount 的不同值。因此减速器输出将是:

id1\t25
id2\t12
id3\t2

与运行流式组合器和化简器相比,此包中的化简器和组合器非常快,因此使用聚合包既方便又快捷。

于 2010-11-22T21:22:37.860 回答
4

我也有类似的情况。我从谷歌结果等推断出现在的答案是“不,Hadoop 中没有其他默认减速器”,这很糟糕,因为拥有默认减速器(例如“平均”或“中位数”)显然很有用“所以你不必自己写。

http://hadoop.apache.org/common/docs/current/api/org/apache/hadoop/mapred/lib/aggregate/package-summary.html显示了许多有用的聚合器用途,但我找不到有关如何使用的文档访问文档和 Erik Forsberg 的回答中描述的非常基本的键/值总和以外的其他功能。也许这个功能只在我不想使用的 Java API 中公开。

Incidentally, I'm afraid Erik Forsberg's answer is not a good answer to this particular question. Another question for which it could be a useful answer can be constructed, but it is not what the OP is asking.

于 2011-08-02T09:28:28.000 回答