文件壓縮的好處:減小文件存儲鎖須要的磁盤空間,加速數據在網絡和磁盤上的傳輸。算法
壓縮格式 工具 算法 文件擴展名 是否能夠切分網絡
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
修改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的輸出進行壓縮,使用像LZO、LZ四、Snappy這樣的快速壓縮方式,能夠得到性能的提高,應爲須要傳輸的數據減小了。
修改mapred-site.xml文件
mapreduce.map.output.compress 設置爲true,默認是false
mapreduce.map.output.compress.codec 壓縮類型