Ответ 1
Как Amazon EMR Documentation, вы можете создать кластер для запуска некоторого script my_script.sh
в главном экземпляре в шаге:
aws emr create-cluster --name "Test cluster" --ami-version 3.11 --use-default-roles
--ec2-attributes KeyName=myKey --instance-type m3.xlarge --instance count 3
--steps Type=CUSTOM_JAR,Name=CustomJAR,ActionOnFailure=CONTINUE,Jar=s3://elasticmapreduce/libs/script-runner/script-runner.jar,Args=["s3://mybucket/script-path/my_script.sh"]
my_script.sh
должен выглядеть примерно так:
#!/usr/bin/env bash
hadoop jar my_first_step.jar [mainClass] args... &
hadoop jar my_second_step.jar [mainClass] args... &
.
.
.
wait
Таким образом, несколько заданий отправляются в Hadoop на том же этапе - но, к сожалению, интерфейс EMR не сможет их отслеживать. Для этого вы должны использовать веб-интерфейсы Hadoop, как показано здесь, или просто ssh
для основного экземпляра и изучить с помощью mapred job
.