복붙노트

[HADOOP] Hadoop MapReduce 작업에서 다중 이퀄라이저 체인화

HADOOP

Hadoop MapReduce 작업에서 다중 이퀄라이저 체인화

이제 다음과 같은 4 단계 MapReduce 작업이 있습니다.

Input-> Map1 -> Reduce1 -> Reducer2 -> Reduce3 -> Reduce4 -> Output

Hadoop에는 여러 매퍼를 하나의 큰 매퍼에 연결하고 맵 단계 사이에 디스크 I / O 비용을 절약 할 수있는 ChainMapper 클래스가 있습니다. ChainReducer 클래스도 있지만 실제 "Chain-Reducer"는 아닙니다. 다음과 같은 작업 만 지원할 수 있습니다.

[Map+/ Reduce Map*]

내 작업에 대해 네 개의 MR 작업을 설정할 수 있으며 마지막 세 작업에 기본 매퍼를 사용할 수 있음을 알고 있습니다. 그러나 감속기는 디스크에 결과를 기록해야 다음 매퍼가 액세스 할 수 있으므로 많은 디스크 I / O가 필요합니다. I / O 비용을 낮추기 위해 내 감속기를 연결하는 다른 Hadoop 내장 기능이 있습니까?

Hadoop 1.0.4를 사용하고 있습니다.

해결법

  1. ==============================

    1.나는 당신이 감속기의 O / P를 다른 감속기에 직접 줄 수 있다고 생각하지 않습니다. 나는 이것을 위해 갔을 것이다 :

    나는 당신이 감속기의 O / P를 다른 감속기에 직접 줄 수 있다고 생각하지 않습니다. 나는 이것을 위해 갔을 것이다 :

    Input-> Map1 -> Reduce1 -> 
            Identity mapper -> Reducer2 -> 
                    Identity mapper -> Reduce3 -> 
                             Identity mapper -> Reduce4 -> Output
    

    Hadoop 2.X 시리즈에서는 내부적으로 ChainMapper로 감속기 전에 매퍼를 연결하고 ChainReducer로 감속기를 연결 한 후 매퍼를 연결할 수 있습니다.

  2. from https://stackoverflow.com/questions/16870675/chaining-multi-reducers-in-a-hadoop-mapreduce-job by cc-by-sa and MIT license