본문 바로가기

Mining

Hadoop Lzo 압축 설정 (2)


이전에 Hadoop Lzo 압축 설정에 관한 블로깅을 했는데...

그 이후에 발생했던 문제와,
실질적으로 사용하는 방법에 대해서 정리..


# 두 가지 버전의 hadoop lzo
1. https://github.com/omalley/hadoop-gpl-compression
  - 이전에 설치했던 버전

2. https://github.com/kevinweil/hadoop-lzo
  - 이 버전으로 다시 설치


# 사용법

1. 파일시스템의 파일을 압축해서 hdfs에 올리는 방법.
> lzop 파일이름
> hadoop fs -copyFromLocal 파일이름.lzo hdfs위치



2. hdfs의 lzo 파일에 index 만들기
 - lzo 파일이 있는곳에 파일이름.index라는 파일이 생긴다.
 - index를 안해주면, lzo 파일을 split하지 않고 하나의 map으로 처리

1) index it in-process via:
hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.LzoIndexer big_file.lzo

2) index it in a map-reduce job via:
hadoop jar /path/to/your/hadoop-lzo.jar com.hadoop.compression.lzo.DistributedLzoIndexer big_file.lzo



3. splitted lzo 파일 사용
  - 파일이름.index 를 보고 알아서 나누어서 작업한다.
1) java
job 설정에 다음을 추가..

job.setInputFormatClass(LzoTextInputFormat.class);
 
2) streaming (테스트 안해봄)
실행할때 다음을 추가

"-inputformat com.hadoop.mapred.DeprecatedLzoTextInputFormat



4. 최종 결과 파일을 fs로
1) lzo_deflate
  - 압축코덱을 LzoCodec으로 하면 .lzo_deflate의 형태로 압축된다.
  - lzo_deflate는 파일시스템으로 getmerge 한 후 압축을 어떻게 푸는지 알수가 없어서, 코덱 설정을 바꿈.

<property>
      <name>mapred.output.compression.codec</name>
      <value>com.hadoop.compression.lzo.LzoCodec</value>
</property>

2) LzoCodec -> LzopCodec
   - The LzoCodec for the pure LZO format, which uses the .lzo_deflate filename extension (by analogy with DEFLATE, which is gzip without the headers).
  - The LzopCodec is compatible with the lzop tool, which is essentially the LZO format with extra headers.
 - map 과 reduce 사이에는 header가 없는 LzoCodec으로..
 - 최종 output은 LzopCodec 으로 변경

<property>
      <name>mapred.output.compression.codec</name>
     <value>com.hadoop.compression.lzo.LzopCodec</value>
</property>


3) getmerge 후에 fs에서 압출 풀때
  - 1개의 reducer의 경우 'lzop -d' 로 일반적인 경우처럼
  - reducer의 개수 1개 이상일 때는 다음과 같이
lzop -d 파일명.lzo -o 압축풀파일명


'Mining' 카테고리의 다른 글

직관, 통찰, 지식, 과학. 끄적끄적..  (0) 2012.05.01
Pig UDFs  (0) 2012.02.22
Hadoop LZO 압축 설정  (0) 2011.07.06
로그 분석  (0) 2011.06.09
Python 하둡 스트리밍 (Hadoop Streaming) #2  (0) 2011.05.16