3

在 MR 工作中

FileOutputFormat.setCompressOutput(job, true);
FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);
MultipleOutputs.addNamedOutput(job, OUTPUT, TextOutputFormat.class, NullWritable.class, Text.class);

在我的减速机中

String myKey = "key"+i;
mos.write(OUTPUT, NullWritable.get(), new Text(lin), myKey);

实际输出文件:

key10-r-00001.gz
key10-r-00002.gz
key11-r-00000.gz
key11-r-00006.gz
key19-r-00000.gz

但我期待的是如下:

key10.gz
key11.gz
key19.gz

我是否需要使用 shell 脚本来重命名和合并实际的输出文件?或者是否有任何其他解决方案我可以在 MR Job 中尝试而无需任何额外步骤?谢谢!

4

0 回答 0