首页 文章

如何为reducer中的每个键输出单独的输出文件?

提问于
浏览
0

我有一个map-reduce程序,其中映射器生成多个键 . 根据map-reduce框架,具有相同密钥的所有对都被转移到相同的reducer . 假设我有10个键(总共)和3个减速器 . 减速器最后输出的是3个输出文件 . 是否有任何技术可以为每个键生成一个单独的输出文件,并在最后输出10个输出文件?可以有10个减速器,但是当密钥数量增加时,这种解决方案可能无法实现 .

2 回答

  • 0

    一旦你开始使用Hadoop for real stuff ,那就不会面临严重的问题 .

    但如果您仍然需要它,为什么不跳过Reduce阶段 . 只需直接从Mappers发出输出,然后是Combiner .

  • 0

    如果你可以使用旧的 mapred API,那么可以选择这样做:

    您可以使用 MultipleTextOutputFormat 的重写扩展,然后将记录的所有内容作为'value'的一部分,同时使文件名或路径成为密钥 .

    oddjob库中已经提供了一个实现: MultipleLeafValueOutputFormat ,您也可以自己实现 .

    阅读更多相关信息here . 另请阅读我的类似答案here .

相关问题