总结:我可以指定在使用hadoop流写入后在每个输出文件上执行的某些操作吗?
基本上,这是Easiest efficient way to zip output of hadoop mapreduce问题的后续行动。我希望每个键X
将其值写入X.txt
文件,压缩到X.zip
存档。但是当我们编写zip输出流时,很难说出结果文件的密钥或名称,因此我们最终会得到包含X.zip
的{{1}}存档。
重命名存档内容的操作非常简单,但我可以在哪里放置它?我不想做的是从S3下载所有拉链并将其上传回来。
答案 0 :(得分:1)
考虑使用自定义MultipleOutputFormat:
基本用例:
此类用于至少具有一个reducer的map reduce作业。 reducer希望根据实际的密钥将数据写入不同的文件。 假设密钥(或值)对实际密钥(值)和实际密钥(值)的期望位置进行编码。
此类用于仅限地图的作业。该作业希望使用输出文件名,该输出文件名是输入数据的输入文件名的一部分,或者是它的一些派生。
此类用于仅限地图的作业。作业想要使用依赖于键和输入文件名
您还可以控制哪个键转到哪个缩减器(Partitioner)