Hadoop_常用存儲與壓縮格式


HDFS文件格式

file_format:
  TEXTFILE    默認格式
  RCFILE     hive 0.6.0 和以后的版本
  ORC       hive 0.11.0 和以后的版本
  PARQUET     hive 0.13.0 和以后的版本,該數據格式企業中最常用
  AVRO      hive 0.14.0 和以后的版本        

 數據存儲的方式

1. 按行存儲 textfile
2. 按列存儲 orc/parqurt
  --orcfile
    每列數據有類似於元數據的索引信息,可以確定列內容,需要某列信息時可以直接鎖定列內容,效率優於按行存儲
    壓縮出來的文件比例最小,以時間換存儲
  --parquet
    比較復雜,支持嵌套數據結構和高效其種類豐富的算法(以應對不同值分布特征的壓縮)
    壓縮率不如orcfile,時間與壓縮比適中
  壓縮率
  TEXTFILE(不壓縮) RCFILE(14%) parquet(62%) orcfile(78%) 其中ORCFILE是RCFILE一個升級

 常見的壓縮技術

1. 壓縮格式: bzip2,gzip,lzo,lz4,snappy等
2. 壓縮比: bzip2>gzip>lzo bzip2最節省存儲空間
3. 解壓速度: lzo>gzip>bzip2 lzo解壓速度最快
4. mapreduce
    --> input --> map --> shuffle --> reduce --> output
      --> shuffle
        --> map shuffle
          --> spill
          --> partition: 決定map的輸出交給那個reduce處理
          --> sort: 兩種方式,WritableComparable/Comparable
          --> combiner: map端的reduce
          --> 壓縮
        --> reduece shuffle
          -->merger
          --> 分組: 將相同key的value進行合並			
5. hadoop中的壓縮
  --> 減少網絡IO
  --> 減少了磁盤IO存儲
  --> 注意壓縮必須有可分割性(在map輸出經過shuffle到reduce時需要解壓縮,保證單個數據還可以被解壓)
  --> hadoop支持的壓縮格式:zlib/gzip/bzip2/lzo/lz4/snappy
6. hadoop中編譯snappy壓縮
  --> Linux安裝snappy庫 
  --> 下載hadoop-snappy-master.zip 編譯生成支持hadoop的snappy.so
  --> 將生成的jar包放到hadoop目錄下的lib
  --> 添加配置文件
  core-site.xml
    <property>
      <name>io.compression.codecs</name>
      <value>
        org.apache.hadoop.io.compress.GzipCodec,
        org.apache.hadoop.io.compress.DefaultCodec,
        org.apache.hadoop.io.compress.BZip2Codec,
        org.apache.hadoop.io.compress.SnappyCodec
      </value>
    </property>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM