1、FileOutputFormat设置
// 优化措施一:压缩MapReduce的输出结果-->使用Gzip压缩-->输出空间占比小
FileOutputFormat.setCompressOutput(job, true); //setOutputCompressorClass
// 使用输出文件压缩,设置reduce输出的压缩算法:Gzip压缩
FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);
2、Configuration对象设置
// 获取job的实例
Job job = Job.getInstance();
// 1、配置文件获取
Configuration conf = this.getConf();
// 优化手段::压缩输出文件
conf.set(FileOutputFormat.COMPRESS, "true");
conf.set("mapreduce.output.fileoutputformat.compress.codec", GzipCodec.class.getName());
3、mapred-site.xml文件配置
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
<description>Reduce是否启用输出压缩</description>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
<description>Reduce输出压缩算法:Gzip</description>
</property>
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
<description>Map是否开启输出压缩</description>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
<description>Map输出压缩算法:Snappy</description>
</property>
</configuration>