Hadoop 壓縮

壓縮的好處

  文件壓縮的好處:減小文件存儲鎖須要的磁盤空間,加速數據在網絡和磁盤上的傳輸。算法

常見的壓縮格式

壓縮格式    工具      算法      文件擴展名      是否能夠切分網絡

DELATE    無       DEFLATE       .delate        否app

Gzip      gzip      DEFLATE    .gz          否工具

bzip2     bzip2      bzip2      .bz2          是性能

LZO      lzop      lzo       .lzo          否優化

LZ4      無       LZ4       .lz4         否spa

Snappy    無       Snappy      .snappy      否code

 

選擇壓縮算法的時候須要考慮到時間和空間,若是要想壓縮個解壓速度快,那麼一定會犧牲空間爲代價,在使用壓縮的時候,能夠經過使用選項來選擇是優化速度仍是優化空間,例如,gzip算法,使用-1選項表示優化時間,使用 -9 表示節省空間。  gzip -1 test.txtorm

壓縮和解壓縮的算法代碼

若是須要使用上述的其餘壓縮和解壓縮算法,能夠zai core-siye.xml文件定義 io.compression.codecs  屬性xml

MapReduce中使用壓縮

reduce端

修改mapred-site.xml文件

mapreduce.output.fileoutputformat.compress  設置爲true

mapreduce.output.fileoutputformat.compress.codec  設置相應的壓縮算法類名

若是輸出是序列文件(sequence file),還能夠設置mapreduce.output.fileoutputformat.compress.type屬性來控制使用的壓縮格式。默認是RECODE,既針對每條記錄進行壓縮,還有其餘的屬性值,如NONE,BLOCK,若是改外BLOCK,將針對每一組記錄進行壓縮。推薦這種壓縮方式,壓縮效率更高。

map端

對map的輸出進行壓縮,使用像LZO、LZ四、Snappy這樣的快速壓縮方式,能夠得到性能的提高,應爲須要傳輸的數據減小了。

修改mapred-site.xml文件

mapreduce.map.output.compress 設置爲true,默認是false

mapreduce.map.output.compress.codec   壓縮類型

相關文章
相關標籤/搜索