如果我使用org.apache.hadoop.mapreduce(new)API,如何配置Hadoop MapReduce映射器输出压缩?

时间:2013-06-28 10:53:39

标签: java hadoop mapreduce compression mapper

是否可以在新的mapreduce API上启用映射器输出压缩,如果可以,请指出如何?我看到很多示例基于hadoop.mapred.JobConf API执行此操作,但mapreduce API没有。

如果无法通过new API进行配置,我可以采取哪些措施让它发挥作用吗?

1 个答案:

答案 0 :(得分:4)

您可以使用以下代码启用地图输出压缩:

public static void enableMapOutputCompress(Job job) {
    job.getConfiguration().setBoolean("mapred.compress.map.output", true);
    job.getConfiguration().setClass("mapred.map.output.compression.codec",
            SnappyCodec.class, CompressionCodec.class);
}

您可以将org.apache.hadoop.io.compress.SnappyCodec更改为其他压缩类,例如:org.apache.hadoop.io.compress.GzipCodecorg.apache.hadoop.io.compress.LzoCodec

我建议使用SnappyCodec。