복붙노트

[HADOOP] 감속기의 밀폐 방법으로 방출하는 방법

HADOOP

감속기의 밀폐 방법으로 방출하는 방법

MapReduceBase에서 상속 된 close 메소드에는 인수가 없습니다.

public void close()

그래서 나는 reduceCollector 메소드를 사용하지 않는다.

void reduce(K2 key, Iterator<V2> values, OutputCollector<K3, V3> output, Reporter reporter)

새로운 hadoop API에서 Reducer 클래스에는 설정 메소드가 있습니다.

void setup(Context context)

컨텍스트 인수는 키와 값을 방출 할 수 있다고 생각합니다. 문제는 이전 API를 사용해야하고 close 메소드에서 방출하는 방법을 알 수 없다는 것입니다. 내가 원하는 것은 마지막 시간 단축 메소드가 호출되고 데이터를 내보낼 때 일부 코드를 실행하는 것입니다.

해결법

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

    1.오래된 API를 사용하는 것은 불행한 일입니다. 새 API에는 정리 메소드가 있습니다 (설정 보완).

    오래된 API를 사용하는 것은 불행한 일입니다. 새 API에는 정리 메소드가 있습니다 (설정 보완).

    Hadoop이 OutputCollector를 당신의 Reducer 클래스의 개인 데이터 멤버에 속여서 저장할 수 있는지 궁금합니다. 그런 다음 close 메서드에서 참조하십시오. 나는 너를 할 수 없다고 생각하지만, 시도해 볼만한 가치가 있을지도 모른다.

  2. from https://stackoverflow.com/questions/13557007/how-to-emit-in-the-close-method-of-reducer by cc-by-sa and MIT license