Hive之Hive压缩

    xiaoxiao2026-02-08  1

    压缩配置:

      map/reduce 输出压缩(一般采用序列化文件存储)

    set hive.exec.compress.output=true;

    set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;

    set mapred.output.compression.type=BLOCK;

     

    任务中间压缩

    set hive.exec.compress.intermediate=true;

    set hive.intermediate.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;(常用)

    set hive.intermediate.compression.type=BLOCK;

     

    1、是否选择文件压缩:

    在hadoop作业执行过程中,job执行速度更多的是局限于I/O,而不是受制于CPU。如果是这样,通过文件压缩可以提高hadoop性能。然而,如果作业的执行速度受限于CPU的性能,呢么压缩文件可能就不合适,因为文件的压缩和解压会花费掉较多的时间。当然确定适合集群最优配置的最好方式是通过实验测试,然后衡量结果。

    2、压缩格式

    GZip 和 BZip2压缩格式是所有最近的hadoop版本支持的,而且linux本地的库也支持这种格式的压缩和解压缩。

    Snappy是最近添加的压缩格式,可以自己添加这种压缩格式

    LZO是经常用到的压缩格式

    GZip 和 BZip2压缩可以保证最小的压缩文件,但是过于消耗时间;Snappy和LZO压缩和解压缩很快,但是压缩的文件较大。所以如何选择压缩格式,需要根据具体的需求决定。(I/O,CPU)

    BZip2 and LZO支持压缩文件分割

    3、中间压缩

     

    中间压缩就是处理作业map任务和reduce任务之间的数据,对于中间压缩,最好选择一个节省CPU耗时的压缩方式

    <property>

             <name>hive.exec.compress.intermediate</name>

             <value>true</value>

             <description> This controls whether intermediate files produced by Hive between

                      multiple map-reduce jobs are compressed. The compression codec and other options

                      are determined from hadoop config variables mapred.output.compress* </description>

    </property>

     

    hadoop压缩有一个默认的压缩格式,当然可以通过修改mapred.map.output.compression.codec属性,使用新的压缩格式,这个变量可以在

    mapred-site.xml 中设置或者在 hive-site.xml文件。 SnappyCodec 是一个较好的压缩格式,CPU消耗较低。

    <property>

             <name>mapred.map.output.compression.codec</name>

             <value>org.apache.hadoop.io.compress.SnappyCodec</value>

             <description> This controls whether intermediate files produced by Hive

             between multiple map-reduce jobs are compressed. The compression codec

             and other options are determined from hadoop config variables

             mapred.output.compress* </description>

    </property>

    最新回复(0)