2012-03-08 3 views
1

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

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

./elasticmapreduce-client.rb RunJobFlow streaming_jobflow.json 

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

ruby elastic-mapreduce RunJobFlow my_job.json 

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

спасибо.

ответ

1

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

Вы можете управлять?

localhost$ elastic-mapreduce --describe 

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

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 

Затем, когда вы счастливы с шагами, и вы должны запустить его без головы (скажем, от хрон) вы можете иметь ЭЙ оркестровать шаги (в том числе кластерной себя заканчивающимся в конце)

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 материал, если вам нужно более сложные шаги, это немного загадочные и трудно получить правильный первый раз ...

1

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

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> 

Это возвращает JobId, который будет выглядеть примерно так: 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

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

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

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