복붙노트

[HADOOP] Hadoop MapReduce에서 여러 개의 다른 매퍼로 여러 입력을 가질 수 있습니까?

HADOOP

Hadoop MapReduce에서 여러 개의 다른 매퍼로 여러 입력을 가질 수 있습니까?

Hadoop MapReduce에서 여러 개의 다른 매퍼로 여러 입력을 가질 수 있습니까? 각 매퍼 클래스는 다른 입력 집합에서 작동하지만 동일한 감속기에서 소비되는 키 - 값 쌍을 모두 방출합니다. 여기서 매퍼를 연결하는 것에 대해 이야기하는 것이 아니며, 순차적이 아닌 다른 매퍼를 병렬로 실행하는 것에 대해 말하고 있습니다.

해결법

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

    1.이것을 결합이라고합니다.

    이것을 결합이라고합니다.

    맵핑 된. * 패키지 (이전이지만 여전히 지원됨)에서 맵퍼 및 축소 기 (reducers)를 사용하려고합니다. 새로운 패키지 (mapreduce. *)는 한 개의 매퍼 입력 만 허용합니다. 맵핑 된 패키지를 사용하면 MultipleInputs 클래스를 사용하여 조인을 정의 할 수 있습니다.

    MultipleInputs.addInputPath(jobConf, 
                         new Path(countsSource),       
                         SequenceFileInputFormat.class, 
                         CountMapper.class);
    MultipleInputs.addInputPath(jobConf, 
                         new Path(dictionarySource), 
                         SomeOtherInputFormat.class, 
                         TranslateMapper.class);
    
    jobConf.setJarByClass(ReportJob.class);
    jobConf.setReducerClass(WriteTextReducer.class);
    
    jobConf.setMapOutputKeyClass(Text.class);
    jobConf.setMapOutputValueClass(WordInfo.class);
    
    jobConf.setOutputKeyClass(Text.class);
    jobConf.setOutputValueClass(Text.class);
    
  2. ==============================

    2.나는 당신의 질문에 답할 것이고, 2 개의 답과 반대로 추천 할 것입니다.

    나는 당신의 질문에 답할 것이고, 2 개의 답과 반대로 추천 할 것입니다.

    질문은 다음과 같습니다. 이질적 인 맵 작업을 병렬로 실행하는 것과 달리 직렬로 실행하는 것과 달리 제대로 균등 한 결과를 출력하는 것이 어떤 이점입니까? 아이덴티티 맵을 사용하여 한 번 같은 레코드를 두 번 지나치지 않도록하는 아이디어입니까?

    첫 번째 대답은 두 매퍼 전용 작업을 동시에 (각 작업량의 절반에 해당하거나 입력 데이터 크기에 가장 적합한 비율로) 동시에 수행하여 균일 한 결과를 출력 한 다음 참가를 수행하는 감속기 전용 작업을 수행하는 것입니다.

    두 번째 대답은 이기종 입력의 두 가지 맛을 인식하고 변형 할 수있는 사용자 지정 InputFormat을 만드는 것입니다. 이것은 극히 추악하지만 첫 번째 제안에 대한 불필요한 신원 맵을 피할 수 있습니다.

    추천은 Chris의 대답에서 비추천 Hadoop API를 사용하지 않는 것입니다. Hadoop은 매우 젊지 만 API는 "새로운"맛을 중심으로 안정화되고 있습니다. 결국 버전 잠금 기능에 도달하게됩니다.

  3. from https://stackoverflow.com/questions/11059725/is-it-possible-to-have-multiple-inputs-with-multiple-different-mappers-in-hadoop by cc-by-sa and MIT license