소프트웨어 개발/Hadoop Ecosystem

Hadoop 콤바이너 클래스를 이용한 튜닝

늘근이 2015. 5. 31. 10:42

콤바이너 클래스 적용.

다음과 같이 콤바이너 클래스를 Driver에 추가만 해주면 조금더 빨리 된다. 콤바이너 클래스는 매퍼의 출력 데이터가 네트워크를 통해 리듀서에 전달되기 전에 매퍼의 출력 데이터의 크기를 줄이는 기능을 수행한다.

입출력 데이터 포맷 설정 전에 다음과 같은 코드를 한줄 추가한다

 

Job.setCombinerClass(DelayReducer.class)

 

컴바이너 클래스를 적용하기 전 걸린 시간은 약 40분이였고, 컴바이너 클래스를 적용한 결과 약 37분으로써, 별로 시간이 그렇게 줄어든것 같지 않다. 다음은 그 결과이다.

 



 

GZIP적용

 

다음과 같이 맵 출력 압축설정을 할수 있다.

SequenceFileOutputFormat.setCompressOutput(job, true);

SequenceFileOutputFormat.setOutputCompressorClass(job, GzipCodec.class);

SequenceFileOutputFormat.setOutputCompressionType(job, CompressionType.BLOCK);



 

34분이 걸렸다. 생각보다 엄청나게 줄어들지는 않는다