Elastic MapReduce中可用的减速器

时间:2009-12-22 15:09:41

标签: aggregate amazon hadoop mapreduce reduce

我希望我能以正确的方式提出这个问题。我正在学习Elastic MapReduce的方法,并且我已经看到了许多可以与“Streaming”工作流程一起使用的“Aggregate”减速器的引用。

在亚马逊的“Amazon Elastic MapReduce简介”PDF中,它声明“Amazon Elastic MapReduce有一个名为aggregate的默认缩减器”

我想知道的是:还有其他默认减速机吗?

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

2 个答案:

答案 0 :(得分: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的不同值。因此,reducer输出将是:

id1\t25
id2\t12
id3\t2

与运行流式合流器和减速器相比,此套件中的减速器和组合器速度非常快,因此使用聚合包装既方便又快捷。

答案 1 :(得分:4)

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

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

顺便说一下,我担心Erik Forsberg的答案不是这个特定问题的好答案。可以构建另一个可以作为有用答案的问题,但这不是OP所要求的。