2013-09-02 2 views
2

Amazon EMR에서 wordcount 예제를 실행하려고합니다.Amazon EMR 애플리케이션의 이환기 수 설정

-1- 첫째, 나는 다음과 같은 명령을 사용하여 클러스터를 만들 :

./elastic-mapreduce --create --name "MYTEST"--alive

이 하나가있는 클러스터를 생성 인스턴스와에서는 jobID 반환,

이 가 이

-2- 둘째, 나는 다음과 같은 명령을 사용하여 작업을 시작 J-12NWUOKABCDEF을 말할 수 :

./elastic-mapreduce --jobflow J-12NWUOKABCDEF --jar S3N ://mybucket/jar-files/wordcount.jar - main-class abc.WordCount,515,--arg S3N : // mybucket/입력 데이터/

--arg S3N : // mybucket/출력 데이터/

--arg -Dmapred.reduce.tasks = 3

내 WordCount 클래스는 abc 패키지에 속해 있습니다.

이것은 문제없이 실행되지만 하나의 감속기 만 얻습니다. "mapred.reduce.tasks = 3"매개 변수가 무시됨을 의미합니다.

내 응용 프로그램에 사용할 감속기의 수를 지정하는 방법이 있습니까?

감사합니다. Neeraj.

답변

0

"-D"
--bootstrap-action s3://elasticmapreduce/bootstrap-actions/configure-daemons --args "-m,mapred.map.tasks=6,-m,mapred.reduce.tasks=3" 
2

로 --bootstrap 액션 옵션 감속기 및 매퍼를 설정하여 EMR 클러스터를 시작 시도하고 "mapred.reduce.tasks=3"은 별도의 인수해야한다.

-1

스트리밍 Jar의 기본 제공 옵션 -numReduceTasks을 사용할 수 있습니다. 예를 들어 Ruby EMR CLI 도구의 경우 :

elastic-mapreduce --create --enable-debugging \ 
    --ami-version "3.3.1" \ 
    --log-uri s3n://someBucket/logs \ 
    --name "someJob" \ 
    --num-instances 6 \ 
    --master-instance-type "m3.xlarge" --slave-instance-type "c3.8xlarge" \ 
    --bootstrap-action s3://elasticmapreduce/bootstrap-actions/install-ganglia \ 
    --stream \ 
    --arg "-files" \ 
    --arg "s3://someBucket/some_job.py,s3://someBucket/some_file.txt" \ 
    --mapper "python27 some_job.py some_file.txt" \ 
    --reducer cat \ 
    --args "-numReduceTasks,8" \ 
    --input s3://someBucket/myInput \ 
    --output s3://someBucket/myOutput \ 
    --step-name "main processing" 
+0

이 방법은 작동하지 않습니다. –

+0

이것은 Hadoop에 내장 된 기능이므로 (https://wiki.apache.org/hadoop/HadoopStreaming 참조) 명령이 내가 가지고있는 것과 일치하는지 다시 확인하십시오 (예 :'--args' 대신'--args'를 사용하십시오. arg는 중요하다). –

관련 문제