0

摘要:我可以在每个输出文件使用hadoop流编写后指定一些要执行的操作吗?

基本上,这是对 hadoop mapreduce问题的最简单有效的压缩输出方法的后续。我希望将每个键X的值写入X.txt文件,压缩到X.zip存档中。但是当我们编写 zip 输出流时,很难说出结果文件的键或名称,所以我们最终得到X.zip包含default-name.txt.

重命名存档内容是非常简单的操作,但我可以将它放在哪里?我不想做的是从 S3 下载所有 zip,然后再上传它们。

4

1 回答 1

1

考虑使用自定义MultipleOutputFormat
基本用例:

  • 此类用于具有至少一个 reducer 的 map reduce 作业。reducer 想要根据实际的键将数据写入不同的文件。假设键(或值)对实际键(值)和实际键(值)的所需位置进行编码。

  • 此类仅用于地图作业。该作业希望使用一个输出文件名,该文件名要么是输入数据的输入文件名的一部分,要么是它的一些派生。

  • 此类仅用于地图作业。该作业希望使用取决于键和输入文件名的输出文件名

您还可以控制哪个键进入哪个减速器(分区器)

于 2012-08-24T08:44:47.427 回答