데이터 압축시 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

+ Recent posts