Hadoop:在写入后修改输出文件

时间:2012-08-23 19:30:22

标签: hadoop hadoop-streaming

总结:我可以指定在使用hadoop流写入后在每个输出文件上执行的某些操作吗?

基本上,这是Easiest efficient way to zip output of hadoop mapreduce问题的后续行动。我希望每个键X将其值写入X.txt文件,压缩到X.zip存档。但是当我们编写zip输出流时,很难说出结果文件的密钥或名称,因此我们最终会得到包含X.zip的{​​{1}}存档。

重命名存档内容的操作非常简单,但我可以在哪里放置它?我不想做的是从S3下载所有拉链并将其上传回来。

1 个答案:

答案 0 :(得分:1)

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

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

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

  • 此类用于仅限地图的作业。作业想要使用依赖于键和输入文件名

  • 的输出文件名

您还可以控制哪个键转到哪个缩减器(Partitioner