복붙노트

[HADOOP] 매퍼 수를 제한하는 방법

HADOOP

매퍼 수를 제한하는 방법

명시 적으로 conf.setNumMapTasks ()를 사용하여 자바 프로그램 내 매퍼 수를 지정했지만 작업이 끝나면 카운터는 시작된 맵 작업 수가 지정된 값보다 많았다는 것을 보여줍니다. 매퍼의 수를 지정된 값으로 제한하는 방법은 무엇입니까?

해결법

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

    1.Hadoop API에 따르면 Jonf.setNumMapTasks는 Hadoop 런타임에 대한 힌트 일뿐입니다. 총 맵 작업 수는 처리 할 입력 데이터의 블록 수와 같습니다.

    Hadoop API에 따르면 Jonf.setNumMapTasks는 Hadoop 런타임에 대한 힌트 일뿐입니다. 총 맵 작업 수는 처리 할 입력 데이터의 블록 수와 같습니다.

    mapred.tasktracker.map.tasks.maximum과 mapred.tasktracker.reduce.tasks.maximum (mapred-site.xml)을 사용하여 노드 당 map / reduce 슬롯 수를 구성 할 수 있어야합니다. 이렇게하면 전체 클러스터에서 병렬로 실행되는 전체 맵퍼 / 축소 기 수를 구성 할 수 있습니다.

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

    2.conf.setNumMapTasks (int num)를 사용하면 매퍼 수를 늘릴 수는 있지만 줄일 수는 없습니다. 매퍼 수를 명시 적으로 Hadoop에서 계산 한 매퍼 수보다 적은 특정 수로 설정할 수 없습니다. 이것은 입력 집합에 대해 hadoop에 의해 생성 된 입력 분할 수에 의해 결정됩니다. mapred.min.split.size 매개 변수를 설정하여이를 제어 할 수 있습니다.

    conf.setNumMapTasks (int num)를 사용하면 매퍼 수를 늘릴 수는 있지만 줄일 수는 없습니다. 매퍼 수를 명시 적으로 Hadoop에서 계산 한 매퍼 수보다 적은 특정 수로 설정할 수 없습니다. 이것은 입력 집합에 대해 hadoop에 의해 생성 된 입력 분할 수에 의해 결정됩니다. mapred.min.split.size 매개 변수를 설정하여이를 제어 할 수 있습니다.

    위키 페이지에서 인용하려면 다음을 수행하십시오.

  3. ==============================

    3.JobConf # setNumMapTasks ()의 javadoc 인용

    JobConf # setNumMapTasks ()의 javadoc 인용

    또한 Hadoop은 고 가용성을 제공하기 위해 실패한지도 작업 또는 장기 실행중인지도 작업을 다시 시작합니다.

    단일 노드에서 동시에 실행중인 맵 작업 수를 제한 할 수 있습니다. 또한 큰 입력 파일이있는 경우 시작된 작업 수를 제한 할 수 있습니다. 분리 할 수없는 자체 InputFormat 클래스를 작성해야합니다. 그런 다음 Hadoop은 사용자가 가지고있는 모든 입력 파일에 대해 맵 작업을 실행합니다.

  4. ==============================

    4.[지도 및 축소 작업에 따라]에 따르면 다음과 같습니다.

    [지도 및 축소 작업에 따라]에 따르면 다음과 같습니다.

    그러나 InputFormat에 대해 자세히 배울 수 있습니다.

  5. from https://stackoverflow.com/questions/19570486/how-to-limit-the-number-of-mappers by cc-by-sa and MIT license