码迷,mamicode.com
首页 > 其他好文 > 详细

Hive架构层面优化之七压缩

时间:2014-07-18 16:12:24      阅读:352      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   java   color   使用   

常见的压缩有:对中间结果压缩、对输出结果压缩

 

压缩对比:

算法 压缩前/压缩后 压缩速度 解压速度
GZIP 13.4% 21MB/s 118 MB/s
LZO 20.5% 135 MB/s 410 MB/s
Snappy 22.2% 172 MB/s 409 MB/s

 

 

 

 

Snappy介绍:

Snappy 网站:http://code.google.com/p/snappy/

Snappy的前身是Zippy。虽然只是一个数据压缩库,它却被Google用于许多内部项目程,其中就包括BigTable,MapReduce和RPC。Google宣称它在这个库本身及其算法做了数据处理速度上的优化,作为代价,并没有考虑输出大小以及和其他类似工具的兼容性问题。Snappy特地为64位x86处理器做了优化,在单个Intel Core i7处理器内核上能够达到至少每秒250MB的压缩速率和每秒500MB的解压速率。

如果允许损失一些压缩率的话,那么可以达到更高的压缩速度,虽然生成的压缩文件可能会比其他库的要大上20%至100%,但是,相比其他的压缩库,Snappy却能够在特定的压缩率下拥有惊人的压缩速度,“压缩普通文本文件的速度是其他库的1.5-1.7倍,HTML能达到2-4倍,但是对于JPEG、PNG以及其他的已压缩的数据,压缩速度不会有明显改善”。

 

压缩技术集成:

snappy-java-1.0.4.1.jar集成在:hadoop-2.0.0-cdh4.5.0\share\hadoop\各个子项目\lib下

core-site.xml

配置需要使用的压缩类,多个使用逗号隔开;此处多配置了几个实现类。

<property>
    <name>io.compression.codecs</name>
    <value>org.apache.hadoop.io.compress.DefaultCodec,org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.BZip2Cod
        ec,org.apache.hadoop.io.compress.DeflateCodec,
        org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

 

mapred-site.xml

<!--reduce阶段都有效-->
<property>
    <name>mapred.output.compression.codec</name>
    <value>org.apache.hadoop.io.compress.DefaultCodec</value>
</property>

<!--map阶段都有效-->
<property>
    <name>mapred.map.output.compression.codec</name>
    <value>org.apache.hadoop.io.compress.SnappyCodec</value>
</property>

<!--map阶段是否压缩-->
<property>
    <name>mapred.compress.map.output</name>
    <value>true</value>
</property>

<!--reduce阶段是否压缩-->
<property>
    <name>mapred.output.compress</name>
    <value>false</value>
</property>

<property>
    <name>mapred.output.compression.type</name>
    <value>BLOCK</value>
</property>

为什么有时只选择压缩map输出?

提高map到reduce之间传输数据的性能;

此种配置下,存在reduce上的数据就没有压缩的,即存放在HDFS上的数据是没有压缩的;

正常情况下:reduce也是需要压缩的

如上的配置文件:既对hadoop有效,也对hive有效。

在生产环境中建议map和reduce端都进行压缩

 

如何设置只针对hive有效(针对单个窗口有效或者是配置到hive-site.xml中整体有效):

SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;

Hive架构层面优化之七压缩,布布扣,bubuko.com

Hive架构层面优化之七压缩

标签:style   blog   http   java   color   使用   

原文地址:http://www.cnblogs.com/luogankun/p/3851847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!