ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Reducer, Combiner
    DataEngineering 2021. 10. 22. 19:32

    Reducer, Combiner

     

    저녁먹으면서 무농과 혜온이 빅데처를 공부하며 얘기한 내용인데 기억이 안나길래 짧게 정리

    결론적으로 둘이 하는 일은 결이 같지만 차이점은 Combiner가 Reducer로 Mapper의 output을 넘겨주기 전에 Reduce 작업을 Map 단에서 미리 한다는 것이다.

            Mapper          -------------->    Reducer

    map -> combine                        shuffle -> reduce

    shuffling 단계에서의 IO를 최소한으로 줄이고자 locally 할 수 있는 일은 하고 넘기자! 가 목적이다. (combiner가)

     

    따라서 combiner는 “mini-reducer” 라고도 부른다. Reducer에게 Mapper의 output record를 넘겨주기 전에 같은 Key끼리 summerize를 하고 넘겨주므로, 실상 Reducer와 하는 일이 동일하기 떄문이다.

    Mapper에서 나오는 거대한 청크의 intermediate data가 Reducer로 넘겨질 때 네트워크 정체가 생긴다. Combiner를 추가함으로써 Reducer로 전송되는 데이터의 사이즈를 줄일 수 있고, network bandwidth(두 머신 간 데이터 전송되는데 걸리는 시간)을 줄일 수 있게 된다.

    장점

    • mapper와 reducer 간 데이터 전송 시간을 줄여준다.
    • reducer에서 처리해야 하는 데이터 양을 줄여준다.
    • reducer의 전체적인 퍼포먼스 향상을 기대할 수 있다.

    단점

    • combiner 실행 guarantee불가 - MapReduce 잡이 Combiner 실행에 의존할 수 없다
    • local fs에서는 - 쌍들이 하둡에 저장되어있고 나중에 combiner 실행시키기 때문에 비싼 disk IO 발생시킨다.

    하둡 정리 .....쓰는중... 중간고사 끝나면 한 3일 각잡고 후다닥 해야지!!!!!!

    댓글

Designed by Tistory.