大資料裡常見的幾種壓縮格式壓縮

2021-09-19 01:10:50 字數 2240 閱讀 9722

離線處理流程:

為什麼使用壓縮

當使用mapreduce經過etl後落到hdfs上時,若使用普通文字格式txt ,那一般副本數為三,若乙個副本為500t,500*3=1500? 顯然是不現實的。

壓縮的第乙個好處,就是節省我們的磁碟空間,提公升磁碟利用率,第二個就是加速我們網路的傳輸。

缺點:需要占用cpu資源進行壓縮與解壓,且,壓縮與解壓需要時間。

!!!所以如果整個集群cpu利用率非常高,不要開壓縮;若集群負載不高,強烈建議開壓縮。

離線壓縮場景

input: flume sink hdfs < == spark/mapreduce ##採用可分片的壓縮方式

temp: sink disk ## 採用速度快的壓縮方式

output: spark/mapreduce = => sink hadoop ## 視情況而定採用

常用壓縮格式:

壓縮格式

工具演算法

副檔名是否可切分

對應的編碼/解碼器

default

無default

.deflate

否org.apache.hadoop.io.compress.defaultcodec

gzip

gzip

default

.gz否

org.apache.hadoop.io.compress.gzipcodec

bzip2

bzip2

bzip2

.bz2

是org.apache.hadoop.io.compress.bzip2codec

lzolzop

lzo.lzo

是(加索引)

com.hadoop.compression.lzo.lzopcodec

lz4無

lz4.lz4

否org.apache.hadoop.io.compress.lz4codec無否

常用壓縮格式的壓縮比:

優點:壓縮/解壓速度也比較快,合理的壓縮率;支援split,是hadoop中最流行的壓縮格式;支援hadoop native庫;需要在linux系統下自行安裝lzop命令,使用方便

缺點:壓縮率比gzip要低;hadoop本身不支援,需要安裝;lzo雖然支援split,但需要對lzo檔案建索引,否則hadoop也是會把lzo檔案看成乙個普通檔案(為了支援split需要建索引,需要指定inputformat為lzo格式)

d. bzip2

優點:支援split;具有很高的壓縮率,比gzip壓縮率都高;hadoop本身支援,但不支援native;在linux系統下自帶bzip2命令,使用方便

缺點:壓縮/解壓速度慢;不支援native

core-site.xml

io.compression.codecs

org.apache.hadoop.io.compress.gzipcodec,

org.apache.hadoop.io.compress.defaultcodec,

org.apache.hadoop.io.compress.bzip2codec,

mapred-site.xml

mapreduce.output.fileoutputformat.compress

true

##reduce輸出採用的壓縮

mapreduce.output.fileoutputformat.compress.codec

org.apache.hadoop.io.compress.bzip2codec

##map輸出採用的壓縮

mapreduce.map.output.compress

true

mapreduce.map.output.compress.codec

常見壓縮格式

缺點 壓縮格式 工具演算法 副檔名 是否可切分 對應的編碼 解碼器 org.apache.hadoop.io.compress.default 無default delete 否defaultcodec gzip gzip default gz否 gzipcodec bzip2 bzip2 bzip...

常見的壓縮格式

減少儲存磁碟空間 降低io 網路的io和磁碟的io 加快資料在磁碟和網路中的傳輸速度,從而提高系統的處理速度 由於使用資料時,需要先將資料解壓,加重cpu負荷 需要安裝 linux系統下沒有對應的命令d.bzip2 壓縮格式 優點缺點 gzip 壓縮比在四種壓縮方式中較高 hadoop本身支援,在應...

Hive常見的壓縮格式

io.compression.codecsname org.apache.hadoop.io.compress.gzipcodec,org.apache.hadoop.io.compress.defaultcodec,com.hadoop.compression.lzo.lzocodec,com.h...