摘要: hadoop中4種壓縮格式的特徵的比較java
1 gzip壓縮linux
優勢:壓縮率比較高,並且壓縮/解壓速度也比較快;hadoop自己支持,在應用中處理gzip格式的文件就和直接處理文本同樣;有hadoop native庫;大部分linux系統都自帶gzip命令,使用方便。併發
缺點:不支持split。app
應用場景:當每一個文件壓縮以後在130M之內的(1個塊大小內),均可以考慮用gzip壓縮格式。譬如說一天或者一個小時的日誌壓縮成一個gzip 文件,運行mapreduce程序的時候經過多個gzip文件達到併發。hive程序,streaming程序,和java寫的mapreduce程序完 全和文本處理同樣,壓縮以後原來的程序不須要作任何修改。oop
2 lzo壓縮ui
優勢:壓縮/解壓速度也比較快,合理的壓縮率;支持split,是hadoop中最流行的壓縮格式;支持hadoop native庫;能夠在linux系統下安裝lzop命令,使用方便。spa
缺點:壓縮率比gzip要低一些;hadoop自己不支持,須要安裝;在應用中對lzo格式的文件須要作一些特殊處理(爲了支持split須要建索引,還須要指定inputformat爲lzo格式)。.net
應用場景:一個很大的文本文件,壓縮以後還大於200M以上的能夠考慮,並且單個文件越大,lzo優勢越越明顯。日誌
3 snappy壓縮orm
優勢:高速壓縮速度和合理的壓縮率;支持hadoop native庫。
缺點:不支持split;壓縮率比gzip要低;hadoop自己不支持,須要安裝;linux系統下沒有對應的命令。
應用場景:當mapreduce做業的map輸出的數據比較大的時候,做爲map到reduce的中間數據的壓縮格式;或者做爲一個mapreduce做業的輸出和另一個mapreduce做業的輸入。
4 bzip2壓縮
優勢:支持split;具備很高的壓縮率,比gzip壓縮率都高;hadoop自己支持,但不支持native;在linux系統下自帶bzip2命令,使用方便。
缺點:壓縮/解壓速度慢;不支持native。
應用場景:適合對速度要求不高,但須要較高的壓縮率的時候,能夠做爲mapreduce做業的輸出格式;或者輸出以後的數據比較大,處理以後的數據 須要壓縮存檔減小磁盤空間而且之後數據用得比較少的狀況;或者對單個很大的文本文件想壓縮減小存儲空間,同時又須要支持split,並且兼容以前的應用程 序(即應用程序不須要修改)的狀況。
最後用一個表格比較上述4種壓縮格式的特徵(優缺點):
4種壓縮格式的特徵的比較
壓縮格式 | split | native | 壓縮率 | 速度 | 是否hadoop自帶 | linux命令 | 換成壓縮格式後,原來的應用程序是否要修改 |
---|---|---|---|---|---|---|---|
gzip | 否 | 是 | 很高 | 比較快 | 是,直接使用 | 有 | 和文本處理同樣,不須要修改 |
lzo | 是 | 是 | 比較高 | 很快 | 否,須要安裝 | 有 | 須要建索引,還須要指定輸入格式 |
snappy | 否 | 是 | 比較高 | 很快 | 否,須要安裝 | 沒有 | 和文本處理同樣,不須要修改 |
bzip2 | 是 | 否 | 最高 | 慢 | 是,直接使用 | 有 | 和文本處理同樣,不須要修改
|
http://blog.csdn.net/lifuxiangcaohui/article/details/52623660