Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

使用 CLI 和控制台执行步骤

可以使用 AWS Management Console、AWS CLI 或 Amazon EMR API 向集群添加步骤。集群中允许的 PENDING 和 ACTIVE 步骤的最大数量是 256,包括系统步骤,如安装 Pig、安装 Hive、安装 HBase 以及配置调试。您可以在长时间运行的集群的生命周期内提交不限数量的步骤,但是,在给定时间只能有 256 个步骤处于 ACTIVE 或 PENDING 状态。对于 EMR 版本 4.8.0 和更高版本 (版本 5.0.0 除外)。您可以使用 AWS Management Console、AWS CLI 或 Amazon EMR API 取消处于 PENDING 状态的步骤。

向集群添加步骤

可以使用 AWS CLI、Amazon EMR 开发工具包或 AWS Management Console向集群添加步骤。使用 AWS Management Console可以在创建集群时向集群添加步骤。您也可以向长时间运行的集群 (即已禁用自动终止选项的集群) 添加步骤。

使用控制台添加步骤

无论是在集群创建过程中添加步骤还是向集群添加步骤,过程都与以下过程类似。

使用 AWS Management Console向正在运行的集群添加步骤

  1. Amazon EMR 控制台中的 Cluster List (集群列表) 页面上,单击您的集群的链接。

  2. Cluster Details (集群详细信息) 页面上,展开 Steps (步骤) 部分,然后单击 Add step (添加步骤)

  3. Add Step (添加步骤) 对话框的各个字段中键入合适的值,然后单击 Add (添加)。选项因步骤类型而异。

使用 AWS CLI 添加步骤

以下过程演示如何使用 AWS CLI 向新创建的集群和正在运行的集群添加步骤。在两个示例中,都使用 --steps 子命令向集群添加步骤。

在集群创建过程中添加步骤

  • 键入以下命令以创建集群并添加一个 Pig 步骤。将 myKey 替换为您的 EC2 密钥对的名称,并将 mybucket 替换为您的 Amazon S3 存储桶的名称。

    • Linux、UNIX 和 Mac OS X 用户:

      aws emr create-cluster --name "Test cluster" --ami-version 2.4 --applications Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large \ --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-version 2.4 --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=m4.large InstanceGroupType=CORE,InstanceCount=2,InstanceType=m4.large --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/]

    注意

    参数列表因步骤类型而异。

    输出是类似于以下内容的集群标识符:

    { "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" ] }

有关如何在 AWS CLI 中使用 Amazon EMR 命令的更多信息,请参阅 http://docs.amazonaws.cn/cli/latest/reference/emr

查看步骤

可以查看的步骤记录总数 (与状态无关) 是 1 000。此总数包括用户提交的步骤和系统步骤。随着用户提交的步骤的状态更改为 COMPLETED 或 FAILED,可以向集群添加用户提交的其他步骤,直到达到 1 000 的步骤限制。向集群添加了 1 000 个步骤之后,提交更多步骤会导致删除用户提交的较旧步骤记录。这些记录不会从日志文件中删除,而是从控制台显示中删除,因此当您使用 CLI 或 API 检索集群信息时不会出现。任何时候都不会删除系统步骤记录。

可以查看的步骤信息取决于用于检索集群信息的机制。下表显示每个可用选项所返回的步骤信息。

选项 DescribeJobFlow 或 --describe --jobflow ListSteps 或 list-steps
开发工具包 256 个步骤 1 000 个步骤
Amazon EMR CLI 256 个步骤 NA
AWS CLI NA 1 000 个步骤
API 256 个步骤 1 000 个步骤

取消待处理步骤

可以使用 AWS Management Console、AWS CLI 或 Amazon EMR API 取消步骤。只能取消处于 PENDING 状态的步骤。

使用 AWS Management Console取消步骤

  1. Amazon EMR 控制台中的 Cluster List 页面上,选择集群的链接。

  2. Cluster Details 页面上,展开 Steps 部分。

  3. 对于要取消的每个步骤,从 Steps 列表中选择步骤,选择 Cancel step,然后确认您要取消步骤。

使用 AWS CLI 取消步骤

  • 使用 aws emr cancel-steps 命令指定集群和要取消的步骤。以下示例演示了用于取消两个步骤的 AWS CLI 命令。

    aws emr cancel-steps --cluster-id j-2QUAJ7T3OTEI8 --step-ids s-3M8DKCZYYN1QE,s-3M8DKCZYYN1QE