2014-02-09 4 views
0

특히 인증 기관의 실습 테스트에서 얻은이 질문은 저에게 의미가 없습니다. 누구든지 도와 줄 수 있습니까?하둡 (Hadoop) 결합 자 : 단어 수지도 개선 프로그램에서 결합 자와 동일한 감속기 코드 사용?

질문 : 매퍼 방출 키와 값 쌍이있는 단어 수 문제가 있습니다. 각 단어를 키로 사용하면 리터럴 1이 값으로 방출됩니다. 그러면 감속기는 수신하는 각 리터럴 "1"에 대해 카운터를 증가시킵니다. qn은 "기존 감속기 코드를 결합기로 사용할 수 있습니까?"

정답은으로 표시되어 있습니다. "예"라고 할 수 있습니다. 왜냐하면 합계 작업은 교환 가능하고 연관성이 있기 때문입니다.

그러나 두 가지 차이점에 대한 답변으로 두 시나리오 결과가 달라 지므로 대답은 "아니오"여야합니다. 그리고 나는 같은 감속기와 결합 자 코드가 "받아들이는 각각의 리터럴 1에 대해 카운터를 증가시키는 것"대신에 사용할 수 있다고 믿습니다. 우리가받는 값만큼 카운터를 증가시키는 또 다른 방법을 사용합니다. 예 함께 고려

결합기없이 가상 경우를 고려할 수 있도록 제 예 가정 MAP1 수 있으며, MAP2의 입출력/P (1) 다음 (1) 수 (1) O/P (1, 1, 1) 감속기 o/p는 (to, 3)이됩니다.

그러나 결합기를 사용하면 map1o/p를 결합기에 공급할 때 결합기 o/p는 (to, 2)가됩니다. 감속기 i/p는 (to, [2,1])이됩니다. 그런 다음 감속기에서 계수기 만 증분하고 리터럴 1 값에 대해서만, 즉 리터럴 2를 버리고 O/P가 (~ 1)이됩니다.

O/p는 (to, 1)이고 결합 자없이 우리는 o/p가 (to, 3)임을 알 수있다.

내가 어딘가에 잘못되었거나 그렇지 않다면 도와주세요.

귀하의 답변에 미리 감사 하라구요, Bikal 바스 넷

+0

는 소리 그/그녀의 자신의 당신을 생각 –

+0

map reduce 프로그램. 그러나 연습 문제는 후자의 경우 sum + = 1을 고려하고 감속기를 결합기로 사용한다고 주장합니다. 나는 거기에서 혼란스러워했다. 어쨌든 고마워. – michaeltang

답변

2

이해하지만 고전 맵리 듀스 단어 수의 응용 프로그램에서, 감속기는 결합기로 사용할 수 있습니다, 맞습니다. WordCount의 37 번째 줄을보십시오. 그것은이다 :

sum += val.get(); 

그리고하지 :

누구든지 연습 테스트를 작성하는의 연습을 필요로 같은
sum += 1; 
+0

가 완전히 고전이에 당신과 동의 맞아 – user2961928