MapReduce中的压缩

压缩


Hadoop权威指南5.2 P99

Mapper输入压缩

在有大量数据并反复处理的情况下,应考虑对输入进行压缩,然而你无需指定使用的译码方式,Hadoop会自动检测文件的扩展名,如果扩展名能够匹配,就会调用恰当的译码方式对文件进行压缩和解压。否则Hadoop不会使用任何译码器,抛异常

此阶段默认支持的格式有

org.apache.hadoop.io.compress.DefaultCodec

org.apache.hadoop.io.compress.GzipCodec

org.apache.hadoop.io.compress.Bzip2Codec

默认支持可以通过配置core-site.xml 的io.compression.codecs进行追加配置

Mapper输出压缩

当Map任务输出的中间数据流很大时,应考虑使用压缩技术,这能显著提升MR任务中的shuffle过程。shuffle 过程是整个hadoop处理过程中消耗资源最多的环节。如果发现因数据量大造成的网络传输慢,也应考虑压缩技术。

可用于Mapper输出的快速译码器包括LZO或者Snappy

此阶段压缩默认未开启,通过设置mapreduce.map.output.compress为true来开启Mapper 输出压缩

开启:

集群中:mapred-site.xml 将mapreduce.map.output.compress的false改为true

JAVA中:configuration.setBoolean(“mapreduce.map.output.compress”,
true)

压缩格式

集群中:修改mapred-site.xml 中的

mapreduce.map.output.compress.codec项

org.apache.hadoop.io.compress.压缩格式

JAVA:

Configuration.setClass(“mapreduce.map.output.compress.codec”,压缩格式 , CompressionCodec.class);

Reducer输出压缩

起到节省磁盘空间的作用。

集群:

开启

修改mapred-site.xml中的

mapreduce.output.fileoutputformat.compress

改为true开启输出压缩

压缩格式

修改mapred-site.xml中的

mapreduce.output.fileoutputformat.compress.codec

org.apache.hadoop.io.compress.压缩格式,默认值DefultCodec

JAVA:
开启:FileOutputFormat.setCompressOutput(job,true);
压缩格式:FileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

各压缩格式的支持

在这里插入图片描述

压缩效率

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值