hive 工作总结2

1 hive 的文件存储格式

  • TEXTFILE
  • SEQUENCEFILE
  • AVRO
  • RCFILE
  • ORC
  • PARQUET

        1 分类

                面向行的:

                        TEXTFILE、SEQUENCEFLIE、AVRO

                面向列的

                        RCFILE、ORC、PARQUET

        2 两种分类的区别

                面向行的不是最佳的文件格式,因为即便只查询一列数据,使用面向行存储的文件格式的表都要读取完整的一行数据。

                面向列的可以很好的解决面向行存储的问题

        3 每种文件格式的说明:

                1 TEXTFILE

  •  创建表的默认存储格式
  •  存储为文本文件,可以被分割和并行处理
  • 可以使用压缩:GZIP 、LZO、SNAPPY

                2 SEQUENCEFILE

  •  key/value对的二进制存储格式
  •  优点: 比textfile有更好的压缩,支持块压缩

                3 AVRO

  • 二进制格式文件
  • 是一个序列化和反序列化的框架

                4 RCFILE

  • 先将表分为几个行组
  • 对每个行组内的数据进行按列存储,每列数据都是分开存储,即先水平划分,再垂直划分   

                5 ORC 

  • 加强版的RCFILE,默认存储块256m

                6 PARQUET

  • 列式存储的文件格式,与ORC类似
  • parquet支持的生态更广

2 表的压缩

        hive表进行压缩是常见的优化手段,一些存储方式自带压缩选择。

        压缩的优点:

                减少存储磁盘空间,降低单节点的磁盘IO。由于压缩后的数据占用的带宽更少,因此可以加快数据在Hadoop集群流动的速度。

       压缩的缺点:

                需要花费的时间/CPU做数据的压缩和解压缩计算。

       支持压缩后分割的方式优点:

                可以分割的格式允许单一文件由多个mapper程序处理,可以更好的并行化。

        1 SEQUENCEFILE 压缩选择:

                NONE、RECORD、BLOCK

                注:RECORD压缩率低,一般建议使用BLOCK压缩

        2 ORC 压缩选择:

                NONE、ZLIB(默认)、SNAPPY

        3 PARQUET压缩选择:

                LZO

                SNAPPY(默认),一般使用impala查询引擎时,选择该压缩类型

                Gzip

        4 总结

                 1 对于ORC

                            1. 压缩格式支持的有限,且都不支持切分,所以适合单个文件不是特别大的场景

                            2. zlib 压缩率高,但效率差一些;

                            3. 使用snappy效率高但是,压缩率低    

                 2 对于parquet

                            1.lzo压缩是支持切分的,所以表的单个文件较大的场景会选择lzo格式

                            2. Gzip压缩率高,但效率差一些

                            3. snappy lzo 效率高,但是压缩率低

                3 实际项目 文件存储格式 、压缩格式选型时:

                            1 文件存储格式 orc 、parquet

                                        如果是选择用impala,可考虑 parquet,否则orc压缩率高

                            2 压缩格式一般是 snappy、lzo

                                        如果是大文件多,追求并发处理,选择 可切分的 parquet+lzo

                                        否则选用 parquet + snappy 或  orc + snappy 、orc + zip 

                                        

                

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值