복붙노트

[HADOOP] 어떤 부분에서 / 맵리 듀스의 클래스는 작업을 구현 줄일 정지 논리입니다

HADOOP

어떤 부분에서 / 맵리 듀스의 클래스는 작업을 구현 줄일 정지 논리입니다

모든 매퍼가 완료되기 전에 하둡 맵리 듀스에서 더 감속기가 시작되지 않습니다. 누군가가 어떤 부분 / 클래스에서 설명해 주시겠습니까 / 코드 라인이 로직을 구현? 나는 하둡 맵리 듀스 버전 1 (NOT 실)에 대해 이야기하고있다. 나는지도가 프레임 워크를 줄일 수 있지만, 많은 클래스가 나는 많은 메소드 호출과 그 순서를 이해하지 못하는 수색.

즉 나는 감속기가 여전히 작동 매퍼가있는 경우에도 감소 시작할 수 있도록 (첫번째 테스트 용)가 필요합니다. 나는이 방법은 내가 작업에 대한 잘못된 결과를 얻고 것을 알고 알고 있지만이 프레임 워크의 일부를 변경하는 몇 가지 작업의 시작이다. 어디 내가보고 변경을 시작해야 하는가?

해결법

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

    1.이것은 셔플 단계에서 이루어집니다. 하둡 1.x의 경우, ShuffleConsumerPlugin를 구현 org.apache.hadoop.mapred.ReduceTask.ReduceCopier 한 번 봐 걸릴. 또한 베르 등으로 "맵리 듀스 단계 장벽을 깨고"연구 논문을 읽을 수 있습니다.

    이것은 셔플 단계에서 이루어집니다. 하둡 1.x의 경우, ShuffleConsumerPlugin를 구현 org.apache.hadoop.mapred.ReduceTask.ReduceCopier 한 번 봐 걸릴. 또한 베르 등으로 "맵리 듀스 단계 장벽을 깨고"연구 논문을 읽을 수 있습니다.

    편집하다:

    크리스 - 흰색의 대답 @ 읽은 후, 나는 나의 대답은 별도의 설명이 필요하다는 것을 깨달았다. 키가 그룹화하고 정렬 할 필요가 있기 때문에 맵리 듀스 모델에서는 모든 매퍼가 끝날 때까지 기다릴 필요가; 플러스, 당신은 실행 일부 투기 매퍼를 가질 수 있으며, 당신은 아직까지 모릅니다 먼저 중복 맵퍼있는 완료됩니다. 은 "맵리 듀스 단계 장벽을 깨고"용지를 나타냅니다 그러나, 일부 응용 프로그램, 그것은 맵퍼의 모든 출력을 기다릴하지 의미가있다. 당신은 (연구 목적으로 대부분)의 행동이 일종의을 구현하고자한다면, 당신은 내가 위에서 언급 한 클래스를 살펴 보셔야합니다.

  2. ==============================

    2.설명에 대한 몇 가지 포인트 :

    설명에 대한 몇 가지 포인트 :

    감속기는 모든 매퍼가 자신의 파티션이 감속기 작업이 실행중인 노드에 복사하고, 마지막으로 정렬이 완료 될 때까지 감소 시작할 수 없습니다.

    당신이 볼 수 있습니다 것은 감속기가 사전 비우는 다른지도 작업이 계속 실행되는 동안지도 출력의 사본입니다. 이것은 slowstart (mapred.reduce.slowstart.completed.map)로 알려진 구성 속성을 통해 제어된다. 감속기 태스크 (완료지도 그 작업의지도 위에 복사 출력) 시작 전에 완료해야하는지도 태스크의 수 -이 값은 비 (0.0 ~ 1.0)을 나타낸다. 기본값은 당신이 당신의 작업에 100 개지도 작업이있는 경우 작업 추적기가 감소 작업을 시작하기 시작하기 전에, 그 중 90 완료 할 필요가 있다는 것을 의미, 일반적으로 약 0.9이다.

    이것은 모든 라인 775, 1610, 1664의 JobInProgress 클래스에서, 작업 추적기에 의해 제어됩니다.

  3. from https://stackoverflow.com/questions/18260785/in-which-part-class-of-mapreduce-is-the-logic-of-stopping-reduce-tasks-implement by cc-by-sa and MIT license