[HADOOP] 매퍼 수를 제한하는 방법
HADOOP매퍼 수를 제한하는 방법
명시 적으로 conf.setNumMapTasks ()를 사용하여 자바 프로그램 내 매퍼 수를 지정했지만 작업이 끝나면 카운터는 시작된 맵 작업 수가 지정된 값보다 많았다는 것을 보여줍니다. 매퍼의 수를 지정된 값으로 제한하는 방법은 무엇입니까?
해결법
-
==============================
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.conf.setNumMapTasks (int num)를 사용하면 매퍼 수를 늘릴 수는 있지만 줄일 수는 없습니다. 매퍼 수를 명시 적으로 Hadoop에서 계산 한 매퍼 수보다 적은 특정 수로 설정할 수 없습니다. 이것은 입력 집합에 대해 hadoop에 의해 생성 된 입력 분할 수에 의해 결정됩니다. mapred.min.split.size 매개 변수를 설정하여이를 제어 할 수 있습니다.
conf.setNumMapTasks (int num)를 사용하면 매퍼 수를 늘릴 수는 있지만 줄일 수는 없습니다. 매퍼 수를 명시 적으로 Hadoop에서 계산 한 매퍼 수보다 적은 특정 수로 설정할 수 없습니다. 이것은 입력 집합에 대해 hadoop에 의해 생성 된 입력 분할 수에 의해 결정됩니다. mapred.min.split.size 매개 변수를 설정하여이를 제어 할 수 있습니다.
위키 페이지에서 인용하려면 다음을 수행하십시오.
-
==============================
3.JobConf # setNumMapTasks ()의 javadoc 인용
JobConf # setNumMapTasks ()의 javadoc 인용
또한 Hadoop은 고 가용성을 제공하기 위해 실패한지도 작업 또는 장기 실행중인지도 작업을 다시 시작합니다.
단일 노드에서 동시에 실행중인 맵 작업 수를 제한 할 수 있습니다. 또한 큰 입력 파일이있는 경우 시작된 작업 수를 제한 할 수 있습니다. 분리 할 수없는 자체 InputFormat 클래스를 작성해야합니다. 그런 다음 Hadoop은 사용자가 가지고있는 모든 입력 파일에 대해 맵 작업을 실행합니다.
-
==============================
4.[지도 및 축소 작업에 따라]에 따르면 다음과 같습니다.
[지도 및 축소 작업에 따라]에 따르면 다음과 같습니다.
그러나 InputFormat에 대해 자세히 배울 수 있습니다.
from https://stackoverflow.com/questions/19570486/how-to-limit-the-number-of-mappers by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 둘째 날에 "너무 많은 페치 실패"가 발생하는 이유는 무엇입니까? (0) | 2019.06.29 |
---|---|
[HADOOP] 매퍼 (또는 감속기) 내부에서 MR 작업을 중단하는 방법 (0) | 2019.06.29 |
[HADOOP] 아파치 스파크로 수백만 개의 작은 s3 파일을 처리하는 법 (0) | 2019.06.29 |
[HADOOP] hbase 스캐너에서 결과 정렬 (0) | 2019.06.29 |
[HADOOP] 하나의 JVM에서 여러 맵 작업을 실행할 수 있습니까? (0) | 2019.06.28 |