使用 AWS CLI 向集群添加步骤
以下过程演示如何使用 AWS CLI 向新创建的集群和正在运行的集群添加步骤。在两个示例中,都使用 --steps
子命令向集群添加步骤。
在集群创建过程中添加步骤
-
键入以下命令以创建集群并添加一个 Apache Pig 步骤。将
myKey
替换为您的 Amazon EC2 密钥对的名称,并将mybucket
替换为您的 Amazon S3 存储桶的名称。-
Linux、UNIX 和 macOS
aws emr create-cluster --name "
Test cluster
" --ami-version2.4
--applications Name=Hive
Name=Pig
\ --use-default-roles --ec2-attributes KeyName=myKey
\ --instance-groups InstanceGroupType=MASTER
,InstanceCount=1
,InstanceType=m5.xlarge
InstanceGroupType=CORE
,InstanceCount=2
,InstanceType=m5.xlarge
\ --steps Type=PIG
,Name="Pig Program
",ActionOnFailure=CONTINUE
,Args=[-f,s3://mybucket/scripts/pigscript.pig
,-p,INPUT=s3://mybucket/inputdata/
,-p,OUTPUT=s3://mybucket/outputdata/
,$INPUT=s3://mybucket/inputdata/
,$OUTPUT=s3://mybucket/outputdata/
] -
Windows
aws emr create-cluster --name "
Test cluster
" --ami-version2.4
--applications Name=Hive
Name=Pig
--use-default-roles --ec2-attributes KeyName=myKey
--instance-groups InstanceGroupType=MASTER
,InstanceCount=1
,InstanceType=m5.xlarge
InstanceGroupType=CORE
,InstanceCount=2
,InstanceType=m5.xlarge
--steps Type=PIG
,Name="Pig Program
",ActionOnFailure=CONTINUE
,Args=[-f,s3://mybucket/scripts/pigscript.pig
,-p,INPUT=s3://mybucket/inputdata/
,-p,OUTPUT=s3://mybucket/outputdata/
,$INPUT=s3://mybucket/inputdata/
,$OUTPUT=s3://mybucket/outputdata/
]
注意 参数列表因步骤类型而异。
默认情况下,步骤并发级别为
1
。您可以在创建集群时使用StepConcurrencyLevel
参数设置步骤并发级别。输出是类似于以下内容的集群标识符。
{ "ClusterId": "j-2AXXXXXXGAPLF" }
-
向正在运行的集群添加步骤
-
键入以下命令以向正在运行的集群添加步骤。将
j-2AXXXXXXGAPLF
替换为您的集群 ID,并将mybucket
替换为您的 Amazon S3 存储桶名称。aws emr add-steps --cluster-id
j-2AXXXXXXGAPLF
--steps Type=PIG
,Name="Pig Program
",Args=[-f,s3://mybucket/scripts/pigscript.pig
,-p,INPUT=s3://mybucket/inputdata/
,-p,OUTPUT=s3://mybucket/outputdata/
,$INPUT=s3://mybucket/inputdata/
,$OUTPUT=s3://mybucket/outputdata/
]输出是类似于以下内容的步骤标识符。
{ "StepIds": [ "s-Y9XXXXXXAPMD" ] }
修改正在运行的集群中的 StepConcurrencyLevel
-
在正在运行的集群中,您可以使用
ModifyCluster
API 修改 StepConcurrencyLevel。例如,键入以下命令将 StepConcurrenyLevel 增加到10
。将j-2AXXXXXXGAPLF
替换为您的集群 ID。aws emr modify-cluster --cluster-id
j-2AXXXXXXGAPLF
--step-concurrency-level 10 -
输出类似于以下内容。
{ "StepConcurrencyLevel": 10 }
有关在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅https://docs.aws.amazon.com/cli/latest/reference/emr。