복붙노트

[HADOOP] 하둡 맵리 듀스는 감소 호출의 입력 값을 반복

HADOOP

하둡 맵리 듀스는 감소 호출의 입력 값을 반복

나는 간단한 맵리 듀스 응용 프로그램을 테스트하고있어,하지만 난이 감소 호출의 입력 값을 반복 할 때 일이 무엇인지 이해하려고 노력 조금 붙어 얻고있다.

이 이상하게 동작 코드의 조각이다 ..

public void reduce(Text key, Iterable<E> values, Context context)
    throws IOException, InterruptedException{

    Iterator<E> iterator = values.iterator();
    E first = (E)statesIter.next();

    while(statesIter.hasNext()){
        E state = statesIter.next();

        System.out.println(first.toString());
        // some other stuff
    }
    // some other stuff
}

각각의에 println 호출이 실제로 다른 문자열을 인쇄한다는 사실을 제외하고 .. 이상한 아무것도. 그래서 때마다 나는 다음 () 메소드를 먼저 변화가 참조하는 객체를 호출합니다.

왜이 이상한 행동?

해결법

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

    1.그것은 다소 반 직관적이지만 실제로 API 문서에 문서화 - 하둡은 당신이 그들 주위를 유지하려면 키 / 값이, 당신이 그들을 복제해야 다시 사용합니다.

    그것은 다소 반 직관적이지만 실제로 API 문서에 문서화 - 하둡은 당신이 그들 주위를 유지하려면 키 / 값이, 당신이 그들을 복제해야 다시 사용합니다.

  2. from https://stackoverflow.com/questions/15976981/hadoop-mapreduce-iterate-over-input-values-of-a-reduce-call by cc-by-sa and MIT license