Как запустить работу mapreduce на кластере amazon эластичного mapreduce (emr) из окон? - PullRequest
1 голос
/ 08 марта 2012

Я пытаюсь научиться запускать java Map / Reduce (M / R) на EMR Amazon.документация, за которой я следую, находится здесь http://aws.amazon.com/articles/3938. Я на компьютере с Windows 7.

Когда я пытаюсь выполнить эту команду, мне показывают информацию справки.

./elasticmapreduce-client.rb RunJobFlow streaming_jobflow.json 

конечно, так как я на машине с Windows, я на самом деле набираю эту команду.я не уверен, почему, но для этой конкретной команды не было версии для Windows (все команды показаны парами, одна для * nix и одна для windows).

 ruby elastic-mapreduce RunJobFlow my_job.json

мой вопрос, как сделатьмы отправляем / запускаем работу из windows в EMR Amazon с помощью интерфейса командной строки (в windows)?Я пытался искать в Интернете, но меня увлекают в дикие места.любая помощь приветствуется.

спасибо.

Ответы [ 3 ]

1 голос
/ 20 июня 2012

Чтобы запустить потоковое задание в EMR, сначала необходимо создать кластер с помощью команды, подобной:

ruby elastic-mapreduce --create --alive --plain-output --master-instance-type m1.xlarge 
--slave-instance-type m1.xlarge --num-instances 6  --name "Some Job Cluster" --bootstrap-action s3://<path-to-a-bootstrap-script> 

Это вернет идентификатор работы, который будет выглядеть примерно так: j-ABCD7EF763

Теперь вы можете отправить свой шаг задания, выполнив следующую команду:

ruby elastic-mapreduce -j j-ABCD7EF763 --stream --step-name "my step name" --mapper
s3://<some-path>/mapper-script.rb --reducer s3://<some=path>/reducer-script.rb --input 
s3://<input-path> --output s3://<output-path> 

Вы также можете напрямую запустить задание вместо запуска потокового задания, и в этом случае кластер завершит свою работу по окончании задания.

1 голос
/ 22 июня 2012

Попробуйте использовать параметр --json.

например. ./elastic-mapreduce --create --name Multisteps --json wordcount_jobflow.json

Вам нужно будет обрезать свой файл json только с помощью шагов (удалив все, что находится за пределами []). Есть ветка, обсуждающая, что: https://forums.aws.amazon.com/thread.jspa?threadID=35093

1 голос
/ 15 марта 2012

Хммм. Я не уверен, сколько лет примеру с RunJobFlow ... Я лично проигнорировал бы его.

Ты умеешь бегать?

localhost$ elastic-mapreduce --describe

Раз вы можете играть прямо на кластере, чтобы вытряхнуть точные шаги, которые вам нужно сделать ... Это стоит сделать, чтобы вам не приходилось запускать / останавливать кластер несколько раз.

localhost$ elastic-mapreduce --create --alive --num-instances 1
localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --ssh

cluster$ hadoop jar my.jar -D some=1 -D args=1 blah blah
cluster$ hadoop jar some_other_jar.jar -D foo -D bar
cluster$ ^D

localhost$ elastic-mapreduce -j j-YOUR_ID_HERE --terminate

Тогда, когда вы довольны шагами и вам нужно, чтобы они запускались без головы (скажем, из cron), вы можете настроить EMR для управления шагами (включая завершение самого кластера в конце)

localhost$ elastic-mapreduce --create --num-instances 1
localhost$ elastic-mapreduce --jar my_jar.jar --args "-D,some=1,-D,args=1,blah,blah"
localhost$ elastic-mapreduce --jar some_other_jar.jar --args "-D,foo,-D,bar"

Я бы изучил материал --json только в том случае, если вам нужны более сложные шаги, это немного загадочно и сложно сделать правильный первый раз ...

...