Hive(一):之Compression(1)----:談談HDFS/Hive裏的壓縮

前言

在大數據存儲、傳送、讀寫中往往會在不同的業務應用場景選擇不同的壓縮技術,由於壓縮方式選擇的不同,優勢和弊端也不同,就像一個天平,要找到適合的那個平衡點

Compression

  1. 好處:
  • 減少磁盤存儲空間
  • 降低IO(網絡IO和磁盤IO)
  • 加快網絡和磁盤中的傳送速度
  1. 弊端
  • 加重CPU負荷(使用數據時需要先要把數據解壓)
  1. 使用Compression場景
  • input(map 數據輸入)
  • transformation(中間轉換)
  • output(reduce輸出寫入磁盤)
  1. Compression種類
壓縮格式 壓縮工具 擴展名 是否支持分割 Hadoop編碼/解碼器
DEFAULT N/A .default:lz4 NO org.apache.hadoop.io.compress.DefaultCodec
gzip gzip .gz NO org.apache.hadoop.io.compress.GzipCodec
bzip2 bzip2 .bz2 YES org.apache.hadoop.io.compress.BZip2Codec
LZO lzop .lzo YES (If Index) com.hadoop.compression.lzo.LzoCodec
Snappy N/A .snappy NO org.apache.hadoop.io.compress.SnappyCodec
LZ4 N/A .lz4 NO org.apache.hadoop.io.compress.Lz4Codec
  • 壓縮比和壓縮時間比較
  1. 壓縮比
    在這裏插入圖片描述

壓縮比: bzip2>gzip>lzo>lz4>snappy
bzip2的壓縮率最高,壓縮率大概30%左右,Gzip比zip2差一點;Lzo大概是50%左右

  • 壓縮時間
    在這裏插入圖片描述

壓縮時間上,bzip2最長(正常,因爲壓縮率高啊!!)
壓縮和解壓時間和壓縮比正好成正比(想想也好理解,壓的越小,算法更復雜,當然壓時間就長,解壓也一樣)

  • 總結
    不同場景選擇不同的壓縮方式,沒有一勞永逸的辦法.如果選擇高壓縮比,那麼CPU的性能就要求大,同時壓縮和解壓消耗時間就長;選擇壓縮比低的,磁盤和網絡IO消耗時間就多,空間也佔用大;對於支持分割的,可以實現並行化處理
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章