壓縮格式與分片

爲了減少文件佔用的磁盤空間,咱們通常會對文件進行壓縮,若是要採用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。
相關文章
相關標籤/搜索