2012-11-26 3 views
3

MapReduceBase에서 상속 close 방법의 close 메소드에 방출하는 방법에는 인수가 없습니다 새로운 hadoop API를 사용하면 Reducer 클래스가 setup 메소드를 가지고 있음을 알게되었습니다 :는 감속기

void setup(Context context) 

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

답변

2

이전 API를 사용하는 것은 불행합니다. 새 API에는 cleanup 메소드가 있습니다 (보완 코드 setup).

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

+0

OutputCollector를 인스턴스 변수에 저장하는 것이 좋습니다. 사실은 아니지만 사실 실제로이 작업을 수행 할 수 있다고 생각합니다. –

+0

이 작업을 수행 할 수 있습니다. 참조가 null 인 경우 참조 메소드를 OutputCollector에 캐시하기 위해 reduce 메소드에 논리를 추가해야합니다. –

+1

'OutputCollector'를 저장하고 성공적으로 'close' 메소드에서 데이터를 내 보냅니다. 고맙습니다. – huoxinbird

관련 문제