2013-09-02 1 views
2

Я пытаюсь запустить пример wordcount в Amazon EMR.Установка количества редукторов для приложения EMA Amazon

-1- Во-первых, создать кластер с помощью следующей команды:

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

Это создает кластер с одним экземпляра и возвращает JobId, позволяет сказать, что J-12NWUOKABCDEF

-2- Во-вторых, я начинаю работу с помощью следующей команды:

./elastic-mapreduce --jobflow J-12NWUOKABCDEF --jar S3N://mybucket/jar-files/wordcount.jar --main-class abc.WordCount --arg S3N: // mybucket/вход-данные/

--arg S3N: // mybucket/вывода-данные/

--arg -Dmapred.reduce.tasks = 3

Мой класс WordCount относится к пакету abc.

Это выполняется без проблем, но я получаю только один редуктор. Это означает, что параметр «mapred.reduce.tasks = 3» игнорируется.

Есть ли способ указать количество редукторов, которые я хочу использовать в моем приложении?

Thank you, Neeraj.

ответ

0

Попробуйте запустить кластер ОГО путем установки редукторов и картографа с опцией --bootstrap-действий, как

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

"-D" и "mapred.reduce.tasks=3" должны быть отдельными аргументами.

-1

Вы можете использовать встроенную опцию потокового Jar -numReduceTasks. Например, с помощью инструмента CLI Ruby EMR:

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' вместо' - arg' важен). –

Смежные вопросы