第2节 mapreduce深入学习:14、mapreduce数据压缩-使用snappy进行压缩
文件压缩有两大好处,节约磁盘空间,加速数据在网络和磁盘上的传输。
代码:
FlowMain: public static void main(String[] args) throws Exception {// 设置我们的map阶段的压缩Configuration configuration = new Configuration(); configuration.set("mapreduce.map.output.compress","true"); configuration.set("mapreduce.map.output.compress.codec","org.apache.hadoop.io.compress.SnappyCodec");// 设置我们的reduce阶段的压缩configuration.set("mapreduce.output.fileoutputformat.compress","true"); configuration.set("mapreduce.output.fileoutputformat.compress.type","RECORD"); configuration.set("mapreduce.output.fileoutputformat.compress.codec","org.apache.hadoop.io.compress.SnappyCodec");int run = ToolRunner.run(configuration, new FlowMain(), args); System.exit(run); }我们可以修改mapred-site.xml配置文件,然后重启集群,以便对所有的mapreduce任务进行压缩(一般不这么配置)
map输出数据进行压缩
<property>
<name>mapreduce.map.output.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.map.output.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
reduce输出数据进行压缩
<property>
<name>mapreduce.output.fileoutputformat.compress</name>
<value>true</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.type</name>
<value>RECORD</value>
</property>
<property>
<name>mapreduce.output.fileoutputformat.compress.codec</name>
<value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>
转载于:https://www.cnblogs.com/mediocreWorld/p/11028335.html
相关资源:JAVA上百实例源码以及开源项目