hive中文件三种压缩方式

       开启压缩:
                set hive.exec.compress.output=true;
                set mapred.output.compress=true;
                set mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
                set io.compression.codec=org.apache.hadoop.io.compress.GzipCodec;
                set mapred.output.compression.type=BLOCK;
         TextFile
                Hive 默认格式,数据不做压缩,磁盘开销大,数据解析开销大。
                可结合 Gzip、Bzip2、Snappy 等使用(系统自动检查,执行查询时自动解压),但使用这种方式,
                hive 不会对数据进行切分,从而无法对数据进行并行操作。
         SequenceFile
                是 Hadoop API 提供的一种二进制文件支持,其具有使用方便、可分割、可压缩的特点。
                SequenceFile 支持三种压缩选择:NONE,RECORD,BLOCK。Record 压缩率低,一般建议使用 BLOCK 压缩。
         RCFILE
                是一种行列存储相结合的存储方式。首先,其将数据按行分块,保证同一个 record 在一个块上,
                避免读一个记录需要读取多个 block。其次,块数据列式存储,有利于数据压缩和快速的列存取
         Orc
                文件格式是对 RCFile 的一个扩展和升级,拥有更高效的压缩比和执行效率。

         Parquet

                是新起的一种列式存储文件类型


         几种压缩方式笔记:
        textfile
存储空间消耗比较大,并且压缩的 text 无法分割和合并 查询的效率最低,可以直接存储,加载数据的速度最高
         sequencefile 存储空间消耗大,压缩的文件可以分割和合并 查询效率高,需要通过text 文件转化来加载
                 rcfile 存储空间最小,查询的效率最高 ,需要通过 text 文件转化来加载,
                加载的速度最低相比 TEXTFILE 和 SEQUENCEFILE,RCFILE 由于列式存储方式,数据加载时性能消
                耗较大,但是具有较好的压缩比和查询响应。数据仓库的特点是一次写入、多次读取,因此,
                整体来看,RCFILE 相比其余两种格式具有较明显的优势。
         通过比较:
                使用压缩可以提高hdfs的存储能力,还有加快我们查询效率。

                在工作中常用压缩方式rc和orc       

          推荐一篇好文章:http://blog.csdn.net/czw698/article/details/38387657

猜你喜欢

转载自blog.csdn.net/xjp8587/article/details/52330440