摘要:我可以在每个输出文件使用hadoop流编写后指定一些要执行的操作吗?
基本上,这是对 hadoop mapreduce问题的最简单有效的压缩输出方法的后续。我希望将每个键X
的值写入X.txt
文件,压缩到X.zip
存档中。但是当我们编写 zip 输出流时,很难说出结果文件的键或名称,所以我们最终得到X.zip
包含default-name.txt
.
重命名存档内容是非常简单的操作,但我可以将它放在哪里?我不想做的是从 S3 下载所有 zip,然后再上传它们。
摘要:我可以在每个输出文件使用hadoop流编写后指定一些要执行的操作吗?
基本上,这是对 hadoop mapreduce问题的最简单有效的压缩输出方法的后续。我希望将每个键X
的值写入X.txt
文件,压缩到X.zip
存档中。但是当我们编写 zip 输出流时,很难说出结果文件的键或名称,所以我们最终得到X.zip
包含default-name.txt
.
重命名存档内容是非常简单的操作,但我可以将它放在哪里?我不想做的是从 S3 下载所有 zip,然后再上传它们。
考虑使用自定义MultipleOutputFormat:
基本用例:
此类用于具有至少一个 reducer 的 map reduce 作业。reducer 想要根据实际的键将数据写入不同的文件。假设键(或值)对实际键(值)和实际键(值)的所需位置进行编码。
此类仅用于地图作业。该作业希望使用一个输出文件名,该文件名要么是输入数据的输入文件名的一部分,要么是它的一些派生。
此类仅用于地图作业。该作业希望使用取决于键和输入文件名的输出文件名
您还可以控制哪个键进入哪个减速器(分区器)