压缩格式与分片

为了减少文件占用的磁盘空间,咱们通常会对文件进行压缩,若是要采用mapreduce或spark对文件进行读取就要注意压缩文件的格式。数据库

由于咱们通常采用的gzip,snappy都不支持splittable,即不能经过多个task同时处理一个文件。markdown


表格来自hadoop权威指南app

针对这种状况咱们通常采用parquetorc格式。oop

parquet,orc及avro的区别优化

  1. 相同点
  • 基于Hadoop文件系统优化出的存储结构
  • 提供高效的压缩
  • 二进制存储格式
  • 文件可分割,具备很强的伸缩性和并行处理能力
  • 使用schema进行自我描述
  • 属于线上格式,能够在Hadoop节点之间传递数据
  1. 不一样点
  • 行式存储or列式存储:Parquet和ORC都以列的形式存储数据,而Avro以基于行的格式存储数据。
  • 就其本质而言,面向列的数据存储针对读取繁重的分析工做负载进行了优化,而基于行的数据库最适合于大量写入的事务性工做负载。
  • 压缩率:基于列的存储区Parquet和ORC提供的压缩率高于基于行的Avro格式。
  • 可兼容的平台:ORC经常使用于Hive、Presto; Parquet经常使用于Impala、Drill、Spark、Arrow; Avro经常使用于Kafka、Druid。
相关文章
相关标签/搜索