zoukankan      html  css  js  c++  java
  • Hive支持的文件格式和压缩格式及各自特点

    Hive中的文件格式

    1-TEXTFILE

    • 文本格式,Hive的默认格式,数据不压缩,磁盘开销大、数据解析开销大。
    • 对应的hive API为:org.apache.hadoop.mapred.TextInputFormat和org.apache.hive.ql.io.HiveIgnoreKeyTextOutputFormat;
    • 可结合Gzip、Bzip2使用(系统自动检查,执行查询时自动解压),但是使用这种方式,hive不会对数据进行切分,从而无法对数据进行并行操作

    2-SequenceFile

    • Hadoop提供的二进制文件,Hadoop支持的标准文件;
    • 数据直接序列化到文件中,SequenceFile文件不能直接查看,可以通过Hadoop fs -text查看;
    • SequenceFile具有使用方便、可分割、可压缩、可进行切片,压缩支持NONE、RECORD、BLOCK(优先);
    • 对应hive API:org.apache.hadoop.mapred.SequenceFileInputFormat和org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat

    3-RCFILE

    • rcfile是一种行列存储相结合的存储方式,先将数据按行进行分块再按列式存储,保证同一条记录在一个块上,避免读取多个块,有利于数据压缩和快速进行列存储;
    • 对应 hive API为:org.apache.hadoop.hive.ql.io.RCFileInputFormat和org.apache.hadoop.hive.ql.io.RCFileOutputFormat

    4-orcfile

    • orcfile式对rcfile的优化,可以提高hive的读写、数据处理性能、提供更高的压缩效率;
    • 优点:
      • 每个task只输出单个文件,减少namenode负载;
      • 支持各种复杂的数据类型,比如:datetime,decima以及复杂类型struct、list、map;
      • 文件中存储了一些轻量级的索引数据;
      • 基于数据类型的块模式压缩:integer类型的列用行程长度编码,string类型的列使用字典编码;
      • 用多个相互独立的recordReaders并行读相同的文件
      • 无需扫描markers即可分割文件
      • 绑定读写所需内存
      • metadata存储用protocol buffers,支持添加和删除列

    5-parquet

    • Parquet也是一种列式存储,同时具有很好的压缩性能;同时可以减少大量的表扫描和反序列化的时间。

    总结

    • textfile 存储空间消耗比较大,并且压缩的text 无法分割和合并 查询的效率最低,可以直接存储,加载数据的速度最高;
    • sequencefile 存储空间消耗最大,压缩的文件可以分割和合并 查询效率高,需要通过text文件转化来加载;
    • orcfile, rcfile存储空间最小,查询的效率最高 ,需要通过text文件转化来加载,加载的速度最低;
    • parquet格式是列式存储,有很好的压缩性能和表扫描功能;

    SequenceFile,ORCFile(ORC),rcfile格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的表中,然后再从textfile表中导入到SequenceFile,ORCFile(ORC),rcfile表中。

    Hive支持的压缩格式

    • Hive支持的压缩格式为Gzip、Bzip2、lzo、snappy


       
      压缩特点.jpg
  • 相关阅读:
    答题活动小程序V3.0
    在线答题小程序关于完形填空题的设计
    如何搭建在线答题小程序
    考研政治刷题小程序我来了
    JVM中的枚举
    IO Stream byte[]
    成长经验系列之七-方法-跳出背了忘忘了背的循环
    JVM之GC Roots
    深入理解Java虚拟机-第三版-第二章JVM内存区域笔记
    JVM之DirectByteBuffer
  • 原文地址:https://www.cnblogs.com/sx66/p/12039248.html
Copyright © 2011-2022 走看看