ver*_*rve 14 hadoop amazon-web-services emr hadoop-streaming
Amazon EMR用于向集群添加步骤的文档表明,单个Elastic MapReduce步骤可以向Hadoop提交多个作业.但是,步骤配置的Amazon EMR文档表明,单个步骤只能容纳hadoop-streaming.jar的一次执行(即,HadoopJarStep是HadoopJarStepConfig而不是HadoopJarStepConfigs数组).
在一个步骤中向Hadoop提交多个作业的正确语法是什么?
就像Amazon EMR 文档所说的那样,您可以通过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"]
Run Code Online (Sandbox Code Playgroud)
my_script.sh 应该是这样的:
#!/usr/bin/env bash
hadoop jar my_first_step.jar [mainClass] args... &
hadoop jar my_second_step.jar [mainClass] args... &
.
.
.
wait
Run Code Online (Sandbox Code Playgroud)
这样,多个作业在同一步骤中提交到 Hadoop ---但不幸的是,EMR 界面将无法跟踪它们。为此,您应该使用此处所示的 Hadoop Web 界面,或者仅ssh使用主实例并使用mapred job.
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |