MapReduce设置输出压缩的三种方法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq262593421/article/details/101685223

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>

猜你喜欢

转载自blog.csdn.net/qq262593421/article/details/101685223