【问题标题】:Available reducers in Elastic MapReduceElastic MapReduce 中可用的 reducer
【发布时间】:2010-12-29 03:37:48
【问题描述】:

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

在 Amazon 的“Amazon Elastic MapReduce 简介”PDF 中指出“Amazon Elastic MapReduce 有一个名为聚合的默认缩减程序”

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

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

【问题讨论】:

    标签: aggregate amazon hadoop mapreduce reduce


    【解决方案1】:

    他们所指的减速器记录在这里:

    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
    

    这个包中的 reducer 和 combiner 与运行流式 combiner 和 reducer 相比非常快,因此使用 aggregate 包既方便又快捷。

    【讨论】:

      【解决方案2】:

      我也有类似的情况。我从谷歌结果等推断出现在的答案是“不,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 所要求的。

      【讨论】:

        猜你喜欢
        • 2011-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多