如何为化简器中的每个键输出单独的输出文件



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

这听起来不是一个好主意。一旦你开始使用Hadoop做实际的事情,你将面临严重的问题。

但是,如果您仍然需要它,为什么不跳过减少阶段。只需直接从映射器发出输出,然后是合路器。

如果您同意使用旧的mapred API,那么还有另一种方法可以执行此操作:

您可以选择覆盖MultipleTextOutputFormat扩展名,然后将记录的所有内容作为"值"的一部分,同时将文件名或路径作为键。

奇数库中已经提供了一个实现:MultipleLeafValueOutputFormat,你也可以自己实现。

在此处阅读更多相关信息。也在这里阅读我的类似答案。

相关内容

  • 没有找到相关文章

最新更新