[HADOOP] 어떻게 outputcollector 작품?
HADOOP어떻게 outputcollector 작품?
나는 기본 맵이 매퍼 또는 감속기를 정의하지 않는 일을, 감소 분석을 시도했다. IdentityMapper IdentityReducer 및 사용 하나, 즉 자신을 명확하게하기 위해 난 그냥 내 정체성 감속기를 썼다
public static class MyIdentityReducer extends MapReduceBase implements Reducer<Text,Text,Text,Text> {
@Override
public void reduce(Text key, Iterator<Text> values,
OutputCollector<Text, Text> output, Reporter reporter)
throws IOException {
while(values.hasNext()) {
Text value = values.next();
output.collect(key, value);
}
}
}
내 입력 파일했다 :
$ hadoop fs -cat NameAddress.txt
Dravid Banglore
Sachin Mumbai
Dhoni Ranchi
Dravid Jaipur
Dhoni Chennai
Sehwag Delhi
Gambhir Delhi
Gambhir Calcutta
I was expecting
Dravid Jaipur
Dhoni Chennai
Gambhir Calcutta
Sachin Mumbai
Sehwag Delhi
I got
$ hadoop fs -cat NameAddress/part-00000
Dhoni Ranchi
Dhoni Chennai
Dravid Banglore
Dravid Jaipur
Gambhir Delhi
Gambhir Calcutta
Sachin Mumbai
Sehwag Delhi
나는 집계가 다음 감속기의 while 루프에서 프로그래머에 의해 수행되며, 이후 outputcollector에 기록한다는 의견이었다. 내가 outputcollector에 전달 된 감속기의 열쇠는 항상 내가 집계하지 않는 경우 고유 & 여기 이후 있다는 느낌이었다, 마지막 키의 값이 이전 값을 대체합니다. 명확하지 않는 경우. 사람이 어떻게 작동하고 모든 키를 처리하는 방법, 나에게 outputcollector의 더 나은 INSITE을 전해 주 시겠어요. 나는 하둡 SRC 코드 outputcollector의 많은 구현을 참조하십시오. 난 내 자신의 outputcollector 내가 기대하고 무엇을 할 수 쓸 수 있습니까?
해결법
-
==============================
1.키는 감속기에 대한 고유하고 감속기를 호출 할 때마다 고유의 키 값과 해당 키와 관련된 모든 값의 반복 가능한 있습니다. 당신이하는 일은 전달 된 모든 값을 통해 반복하고 각각을 쓰고있다.
키는 감속기에 대한 고유하고 감속기를 호출 할 때마다 고유의 키 값과 해당 키와 관련된 모든 값의 반복 가능한 있습니다. 당신이하는 일은 전달 된 모든 값을 통해 반복하고 각각을 쓰고있다.
그래서 귀하의 경우 데이터보다 적은 수의 호출이있을 수 있다는 문제가되지 않습니다. 당신은 여전히 모든 값을 쓰고 끝.
from https://stackoverflow.com/questions/12763478/how-outputcollector-works by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 배 사육사 타임 아웃 기간 30000 내에서 사육사에 연결하지 못했습니다 (0) | 2019.09.30 |
---|---|
[HADOOP] JDBC 소스에서 데이터를 마이그레이션 할 때 어떻게 분할을 최적화? (0) | 2019.09.30 |
[HADOOP] 점수를 업데이트하는 동안 너치 2.3.1지도-감소 시간이 초과되었습니다 (0) | 2019.09.30 |
[HADOOP] 완료 맵리 듀스 작업 -Taking 너무 오래 (0) | 2019.09.30 |
[HADOOP] 로그없이 하둡 NodeManager 종료 (0) | 2019.09.30 |