ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Hadoop] MapReduce Combiner 알아보기
    Hadoop 2024. 2. 11. 10:26
    728x90
    반응형

    - 목차

     

    Combiner 란 ?

    Combiner 의 내부 동작은 Reducer 와 유사합니다.

    다만 차이가 있다면, 실행되는 노드의 위치입니다.

    Combiner 는 Mapper 가 위치한 노드에서 실행됩니다.

    그래서 Combiner 는 보통 최적화 기법으로 사용되는데요.

    Reducer 가 수행해야할 작업을 Combiner 단계에서 미리 처리하여 Shuffling 되는 데이터의 양을 줄일 수 있습니다. 

     

    유명한 예시인 Word Count 관련 MapReduce 를 예로 들면,

    중복이 많은 Word 에 대한 Count 를 계산할 때에 Combiner 가 존재하지 않는다면 모든 Key-Value Pairs 는 Shuffling 의 대상이 됩니다.

    이 과정에서 Combiner 는 중복적인 Word 를 일차적으로 Reducing 하여 Shuffling 을 줄입니다.

     

    위의 이미지는 Combiner 를 사용하지 않은 케이스인데요. 25개의 Word 에 대한 Shuffling 이 발생합니다.

     

     

    반면 Combiner 를 사용하게 되면 중복적인 Key 에 대한 데이터가 병합되면서 Shuffling 되는 데이터의 양이 줄어듭니다.

     

    이처럼 Combiner 는 Map Phase 에서 사용되는 Reducer 이므로

    Combiner 는 Reducer 와 동일한 Input/Output 에 대한 인터페이스를 가져야합니다.

    그래서 Combiner 는 쉽게 Map Phase 에서 수행되는 Reducer 라고 생각하셔도 무방하구요.

    Semi-Reducer, Local Reducer 등의 표현으로 사용됩니다.

     

    Combiner 는 언제 사용할까 ?

    Combiner 는 Reducer 를 Mapper 의 위치로 옮길 수 있는 연산에 대해서 적용가능합니다.

    대표적인 케이스는 Count, Sum, Min/Max 를 구하는 연산입니다.

    Count, Sum, Min/Max 연산은 개별적인 레코드를 대상으로 수행하든, 부분 집합을 대상으로 수행하든 결과는 동일합니다.

    반면, Average 나 TopK 를 구하는 연산은 적용할 수 없습니다.

    부분 집합의 평균이나 TopK 가 전체의 평균 또는 TopK 가 될 수 없기 때문입니다.

     

    반응형
Designed by Tistory.