데이터 압축시 map/reduce 작업에 대한 고려(병렬 작업)가 필요함
Format |
CompressionCodec |
java | Native |
split 가능(m/r) |
DEFLATE |
org.apache.hadoop.io.compress.DefaultCodec |
O | O |
|
gzip |
org.apache.hadoop.io.compress.GzipCodec |
O | O |
|
bzip2 |
org.apache.hadoop.io.compress.BZip2Codec |
O | O |
O |
LZO |
com.hadoop.compression.lzo.LzopCodec |
O |
O (indexed) |
|
LZ4 |
org.apache.hadoop.io.compress.Lz4Codec |
O |
|
|
Snappy |
org.apache.hadoop.io.compress.SnappyCodec |
O |
|
데이터 압축시 고려사항
1. sequence files 형태의 file format 사용
avro datafiles, orc files, parquet files ( compression and split 지원 )
2. split이 가능한 bzip2 압축을 사용 (다른것에 비해 느림)
3. 어플리케이션에서 file를 chunk 단위로 구성 (해당 chunk 사이는 hdfs block 사이즈로 구성)
4. 압축없이 저장
MapReduce 압축 Properties
이름 |
type |
default value |
비고 |
mapreduce.output.fileoutput.format.compress | boolean | false | |
mapreduce.ouput.fileoutputformat.compress |
class |
DefaultCodec |
|
mapreduce.output.fileoutputformat.compress.type |
string |
record |
|
* compress.type은 BLOCK 형태로 할 경우 효율적임
Map 압축 Properties
이름 |
type |
default value | 비고 |
mapreduce.map.output.compress |
boolean |
false |
|
mapreduce.map.output.compress.codec |
class |
DefaultCodec |
|
* DefaultCodec : org.apache.hadoop.io.compress.DefaultCodec
'NoSQL > Hadoop' 카테고리의 다른 글
hadoop text file 읽기 (0) | 2017.03.13 |
---|---|
hadoop serialization and deserialization (0) | 2017.03.10 |
yarn 구조 (0) | 2017.03.08 |
hadoop read & write (0) | 2017.03.06 |
hadoop streaming (0) | 2017.03.06 |