2012-05-04 6 views
0

맵퍼 수를 늘리고 리듀서 수를 줄이면 실행 중 작업의 성능 (증가/감소)에 차이가 있습니까?성능을 향상시키는 데 사용되는 인스턴스 수에 따라 hadoop에서 매퍼와 리듀서를 늘리는 방법은 무엇입니까?

또한 mappers 및 reducers 수를 설정하는 방법에 대해 알아 보겠습니다. 나는이 설정에 대해 본 적이 없다. 왜 나는 이것에 대해 모른다. 나는 hadoop을 알고 있지만, 나는 Hive를 많이 사용함에 따라 코드를 가지고있다.

또한 매퍼와 리듀서의 수를 늘리고 싶다면 어떻게 설정하고 어떤 값을 설정해야합니까? 인스턴스 수에 따라 다릅니 까?

답장을 보내주세요. 시험해보고 성능을 확인하고 싶습니다. 감사합니다. .

답변

3

변화하는 매퍼 수 - 결과에 영향을 미치지 않는 순수한 최적화입니다. 클러스터를 완전히 활용하려면 번호를 설정해야합니다 (전용 클러스터 인 경우). 코어 수와 동일한 노드 당 매퍼 수를 시도하십시오. CPU 사용률을 살펴보고 CPU 사용량이 거의 가득 찰 때까지 번호를 늘리거나 시스템이 스왑을 시작하십시오. 메모리가 충분하지 않은 경우 코어보다 적은 매퍼가 필요합니다.
특정 감속기 (예 : 1)가 필요한 경우 감속기의 수에 영향이 있으므로 - 1로 설정하십시오.
여러 감속기의 결과를 처리 할 수있는 경우 - 매퍼와 동일한 최적화를 수행하십시오.
이론적으로이 튜닝 프로세스 중에 IO 바인딩이 될 수 있습니다. 작업 수를 조정할 때도주의해야합니다. 매퍼/감속기 수가 증가하더라도 CPU 사용률을 낮추면이를 인식 할 수 있습니다.

+0

감사 다윗을 없음으로하지 않습니다. 하지만 매퍼와 감속기를 설정하는 방법을 알고 싶습니다 (설정 명령은 무엇입니까?). –

+0

가장 간단한 방법은 Mapred-site.xml의 mapred.tasktracker.map.tasks.maximum 및 mapred.tasktracker.reduce.tasks.maximum 속성을 설정하는 것입니다. –

4

블록 크기 및 분할 크기를 기준으로 맵퍼 수를 늘릴 수 있습니다.

Configuration conf= new Cofiguration(); 
//set the value that increases your number of splits. 
conf.set("mapred.max.split.size", "1020"); 
Job job = new Job(conf, "My job name"); 
0

나는 mapred.max.split.size을 수정하여 @Animesh 주권 제이 자로부터 제안을 시도하고 눈에 띄는 성능 향상을 가지고있다 : 아래 그림과 같이 가장 쉬운 방법 중 하나는 분할 크기를 감소하는 것입니다.

0

내가 하둡 2.2을 사용하고, 나는 내가 실-site.xml 파일을 업데이트하려고 을 더 매퍼를 만들기 위해,이 값을 감소하고자하는 최대 입력 분할 크기 을 설정하는 방법을 알고하지 않으며, 그러나 그것을 실제로

, 하둡 2.2을 작동하지 않습니다/실에는 다음과 같은 설정이 답변에 대한

<property> 
<name>mapreduce.input.fileinputformat.split.minsize</name> 
<value>1</value> 
</property> 
<property> 
<name>mapreduce.input.fileinputformat.split.maxsiz e</name> 
<value>16777216</value> 
</property> 

<property> 
<name>mapred.min.split.size</name> 
<value>1</value> 
</property> 
<property> 
<name>mapred.max.split.size</name> 
<value>16777216</value> 
</property> 

최고의