2012-08-23 93 views
0

摘要:我可以指定在使用hadoop流写入后,在每个输出文件上执行一些操作吗?Hadoop:写入后修改输出文件

基本上,这是Easiest efficient way to zip output of hadoop mapreduce的后续问题。我想将其中的每个键X的值写入X.txt文件,压缩成X.zip存档。但是,当我们编写zip输出流时,很难说明关键字或结果文件的名称,因此我们最终以X.zip归档文件包含default-name.txt

这将是一个非常简单的操作来重命名存档内容,但我可以在哪里放置它?我不想做的就是从S3下载所有的zip文件,然后重新上传。

回答

0

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

  • 该类用于地图缩小工作与至少一个减速。 Reducer想要根据实际的键将数据写入不同的文件。 假定一个键(或值)编码实际键(值)和实际键(值)的所需位置。

  • 此课程仅用于地图专业作业。作业想要使用输出文件名称,该文件名称既可以是输入数据的输入文件名称的一部分,也可以是它的一些派生名称。

  • 此课程仅用于地图专业作业。该作业要使用依赖于密钥和输入文件名

您还可以控制这两个键,可进入一个输出文件名到减速机(Partitioner