복붙노트

[HADOOP] MapReduce에게 사용할 매퍼의 수를 알려주는 방법은 무엇입니까?

HADOOP

MapReduce에게 사용할 매퍼의 수를 알려주는 방법은 무엇입니까?

MapReduce 작업의 속도를 최적화하려고합니다.

특정 수의 매퍼 / 감속기 프로세스를 사용하기 위해 hadoop에 알릴 수있는 방법이 있습니까? 또는 최소한 최소한의 매퍼 프로세스 수?

설명서에서는 메서드를 사용하여 지정할 수 있다고 명시되어 있습니다.

public void setNumMapTasks(int n)

JobConf 클래스의

그런 식으로 쓸모가 없어서 Job with Job 클래스를 시작합니다. 이 일을 올바르게 수행하는 방법은 무엇입니까?

해결법

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

    1.지도 작업의 수는 입력의 블록 수에 의해 결정됩니다. 입력 파일이 100MB이고 HDFS 블록 크기가 64MB이면 입력 파일은 2 블록을 차지합니다. 따라서지도 작업 2 개가 생성됩니다. JobConf.setNumMapTasks () (1) 프레임 워크의 힌트.

    지도 작업의 수는 입력의 블록 수에 의해 결정됩니다. 입력 파일이 100MB이고 HDFS 블록 크기가 64MB이면 입력 파일은 2 블록을 차지합니다. 따라서지도 작업 2 개가 생성됩니다. JobConf.setNumMapTasks () (1) 프레임 워크의 힌트.

    감속기의 수는 JboConf.setNumReduceTasks () 함수에 의해 설정됩니다. 이것은 작업에 대한 감축 작업의 총 수를 결정합니다. 또한 mapred.tasktracker.tasks.maximum 매개 변수는 단일 작업 추적자 노드에서 병렬로 실행할 수있는 축소 작업 수를 결정합니다.

    자세한 정보는지도의 수와 (2)

    (1) - http://hadoop.apache.org/mapreduce/docs/r0.21.0/api/org/apache/hadoop/mapred/JobConf.html#setNumMapTasks%28int%29 (2) - http://wiki.apache.org/hadoop/HowManyMapsAndReduces

  2. from https://stackoverflow.com/questions/7418277/how-to-tell-mapreduce-how-many-mappers-to-use by cc-by-sa and MIT license