HDFS壓縮方式

壓縮格式 算法 split native(原生) 是否Hadoop自帶 Linux命令 切換壓縮格式 原程序是否修改
DEFLATE DEFLATE
gzip DEFLATE 無需修改
lzo LZO 需要安裝 需要建索引且需要指定輸入格式
snappy snappy 需要安裝 不需要修改
bzip2 bzip2 不需要修改
  • gzip壓縮
    優(yōu)點(diǎn):壓縮率比較高,而且壓縮/解壓速度也比較快;hadoop本身支持,在應(yīng)用中處理gzip格式的文件就和直接處理文本一樣;有hadoop native庫(kù);大部分linux系統(tǒng)都自帶gzip命令,使用方便。
    缺點(diǎn):不支持split。
    應(yīng)用場(chǎng)景:當(dāng)每個(gè)文件壓縮之后在130M以內(nèi)的(1個(gè)塊大小內(nèi)),都可以考慮用gzip壓縮格式。譬如說一天或者一個(gè)小時(shí)的日志壓縮成一個(gè)gzip文件,運(yùn)行mapreduce程序的時(shí)候通過多個(gè)gzip文件達(dá)到并發(fā)。hive程序,streaming程序,和java寫的mapreduce程序完全和文本處理一樣,壓縮之后原來的程序不需要做任何修改。
  • lzo壓縮
    優(yōu)點(diǎn):壓縮/解壓速度也比較快,合理的壓縮率;支持split,是hadoop中最流行的壓縮格式;支持hadoop native庫(kù);可以在linux系統(tǒng)下安裝lzop命令,使用方便。
    缺點(diǎn):壓縮率比gzip要低一些;hadoop本身不支持,需要安裝;在應(yīng)用中對(duì)lzo格式的文件需要做一些特殊處理(為了支持split需要建索引,還需要指定inputformat為lzo格式)。
    應(yīng)用場(chǎng)景:一個(gè)很大的文本文件,壓縮之后還大于200M以上的可以考慮,而且單個(gè)文件越大,lzo優(yōu)點(diǎn)越明顯。
  • snappy壓縮
    優(yōu)點(diǎn):高速壓縮速度和合理的壓縮率;支持hadoop native庫(kù)。
    缺點(diǎn):不支持split;壓縮率比gzip要低;hadoop本身不支持,需要安裝;linux系統(tǒng)下沒有對(duì)應(yīng)的命令。
    應(yīng)用場(chǎng)景:當(dāng)mapreduce作業(yè)的map輸出的數(shù)據(jù)比較大的時(shí)候,作為map到reduce的中間數(shù)據(jù)的壓縮格式;或者作為一個(gè)mapreduce作業(yè)的輸出和另外一個(gè)mapreduce作業(yè)的輸入。
  • bzip2壓縮
    優(yōu)點(diǎn):支持split;具有很高的壓縮率,比gzip壓縮率都高;hadoop本身支持,但不支持native;在linux系統(tǒng)下自帶bzip2命令,使用方便。
    缺點(diǎn):壓縮/解壓速度慢;不支持native。
    應(yīng)用場(chǎng)景:適合對(duì)速度要求不高,但需要較高的壓縮率的時(shí)候,可以作為mapreduce作業(yè)的輸出格式;或者輸出之后的數(shù)據(jù)比較大,處理之后的數(shù)據(jù)需要壓縮存檔減少磁盤空間并且以后數(shù)據(jù)用得比較少的情況;或者對(duì)單個(gè)很大的文本文件想壓縮減少存儲(chǔ)空間,同時(shí)又需要支持split,而且兼容之前的應(yīng)用程序(即應(yīng)用程序不需要修改)的情況。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容