복붙노트

[HADOOP] 이상한 행동을 하둡 : 키에 대한 모든 값을하지 않는 기능을 감소

HADOOP

이상한 행동을 하둡 : 키에 대한 모든 값을하지 않는 기능을 감소

내 하둡 프로젝트에서, 나는 각 라인의 이름의 번호와 텍스트 파일의 라인을 읽고있다. 첫 번째 이름은 내 이름을 나타내며, 나머지는 친구의 목록입니다. 그런 다음지도 기능에, (사용자 이름, 친구)의 쌍을 생성하고, 각 쌍은 키가 "키 [NAME1] [NAME2]"사용자 이름과 알파벳 순으로 정렬 된 친구의 이름은 name1,2있는 곳. KeyUserAUserB : "사용자 A, 사용자 B"와 KeyUserAUserB 일반적으로, 자신의 친구 목록에서 서로를 사용자 A와 사용자 B의 라인의 라인을 읽기, 둘 다이 후,이 경우에 다른 값, 2 개 같은 글의 열쇠를 얻을 것입니다 : "사용자 B, 사용자 A". 내가이 감소 기능을 기대하는 것은 키와 값으로 "사용자 A, 사용자 B", "사용자 B, 사용자 A"한 쌍의 한 지점, KeyUserAUserB에서 얻을 수 있습니다. 그래서 값 반복자는 두 요소를 가질 것입니다. 그러나, 감속기 기능에, 나는 각각 하나의 값으로 KeyUserAUserB 두 번 얻을. 이것은 내가 하둡에서 기대하고 무엇을하지 않습니다 ....

나는 또한 내 userlogs에 발견, 내가 4 "m"폴더를 가지고 있고, 그 중 첫 2 내가 나를 위를 식별하는 데 도움 로그를 가지고있다. 모두 "m"의 맵 함수의 출력 (System.out에)이 함수의 출력 감소 얽혀 기록. 그게 내 이상과 아무 상관이 있는지 잘 모르겠지만, 나는이 "R"폴더를 유지하기 위해 출력을 감소 예상. 몇몇 경우에 KeyUserAUserB 두 값 감속기에 오는 일이 있지만 또한, 상기 예 KeyUserAUserB 하나 로그 ... 하나의 "m"로그 파일 및 다른 다른 KeyUserAUserB 인쇄, 난 발견 적어도 하나의 경우는 절대 값이 모두 함께 제공하지 않을 때 (도 동일 키와 키 값이 다른 "m"에 상주하는 그 2쌍 로그 파일).

내가 눈치 또 다른 것은, 출력은 출력 파일에 직접 값을 보내지 않는 기능을 감소에서 수집하지만, 같은 줄 기능에 대한 입력으로 다시 전달 ...

당신은 할 수가 원인이 될 것을,이 문제에 대해 어떻게 생각하십니까?

해결법

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

    1.드디어. 내가 결합기 클래스 = 감속기 클래스를 사용하고 있기 때문에 전체 예기치 않은 동작입니다. 예상대로 그 라인을 주석 한 후, 모든 일했다.

    드디어. 내가 결합기 클래스 = 감속기 클래스를 사용하고 있기 때문에 전체 예기치 않은 동작입니다. 예상대로 그 라인을 주석 한 후, 모든 일했다.

  2. from https://stackoverflow.com/questions/26693034/hadoop-strange-behaviour-reduce-function-doesnt-get-all-values-for-a-key by cc-by-sa and MIT license