2017-01-12 6 views
0

У меня есть локальный кластер на моем ноутбуке (псевдо-режим). Где я запускаю разные команды mapreduce, такие какМогу ли я запустить задание на EMR, как в локальном кластере

hadoop-streaming -D mapred.output.compress=true \ 
    -D mapred.output.compression.codec=org.apache.hadoop.io.compress.GzipCodec \ 
    -files my_mapper.py,my_reducer.py \ 
    -mapper my_mapper.py \ 
    -reducer my_reducer.py \ 
    -input /aws/input/input_warc.txt \ 
    -output /aws/output 

Теперь я должен запустить его на ЭМИ. Есть два варианта, которые можно использовать, это консоль, а вторая - aws cli. Я хочу работать точно так, как указано выше. Для этого я думаю, что если я ssh для мастера EMR, тогда я должен буду запустить эту команду. Правильно ли это или есть ли недостаток в этом вопросе?

ответ

1

Да, вы можете использовать SSH для своего кластера и выполнять свои задания там, но вы также можете использовать Step API (http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-steps.html) для запуска произвольных команд в главном экземпляре, включая, конечно, выполнение распределенных заданий, подобных вашему примеру. Вы можете добавлять Шаги в кластер, используя AWS CLI («aws emr add-step ...» или также во время создания кластера с использованием «aws emr create-cluster ... --steps ...») или аналогичным образом с использованием AWS SDK (например, AWS Java SDK) или с помощью консоли AWS EMR.

Некоторые преимущества API-интерфейса Step включают в себя то, что он захватывает выходные данные каждого шага, чтобы вы могли просматривать его с помощью консоли AWS CLI, SDK или AWS, и вы также можете проверить статус шагов, чтобы определить, когда они завершено.

Одним из недостатков API-интерфейса Step является то, что в настоящее время все шаги выполняются последовательно, поэтому вы не можете параллельно выполнять несколько шагов.

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

  • Нет связанных вопросов^_^