将集群配置为在步骤执行后继续或终止 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

将集群配置为在步骤执行后继续或终止

本主题解阐释了使用长时间运行的集群与创建在最后一步运行后关闭的临时集群之间的区别。它还介绍了如何为集群配置步骤执行。

创建长时间运行的集群

默认情况下,使用控制台或 Amazon CLI 创建的集群是长时间运行的集群。长时间运行的集群将继续运行、接受工作并累积费用,直到您采取措施关闭它们。

长时间运行的集群在以下情况十分有效:

  • 当你需要交互式或自动查询数据时。

  • 当您需要与集群上托管的大数据应用程序持续交互时。

  • 当您定期处理大型数据集或需要频繁处理时,每次都无法有效启动新集群和加载数据。

您还可以在长时间运行的集群上设置终止保护,以避免意外或错误关闭 EC2 实例。有关更多信息,请参阅使用终止保护

注意

Amazon EMR 会为具有多个主节点的所有集群自动启用终止保护,并覆盖您在创建集群时应用的所有步骤执行设置。您可以在集群启动后禁用终止保护。请参阅为正在运行的集群配置终止保护。要关闭具有多个主节点的集群,您必须先修改集群属性,才能禁用终止保护。有关说明,请参阅 终止具有多个主节点的 Amazon EMR 集群

将集群配置为在步骤执行后终止

在步骤执行后配置终止时,集群将启动、运行引导启动操作,然后运行您指定的步骤。最后一步完成后,Amazon EMR 将终止集群的 Amazon EC2 实例。默认情况下,使用 Amazon EMR API 启动的集群会启动步骤执行。

步骤执行后终止,对于定期执行处理任务(例如日常数据处理运行)的集群来说,极其有效。步骤执行还可帮助您确保您只需按处理数据所需的时间付费。有关步骤的更多信息,请参阅 向集群提交工作

注意

我们重新设计了 Amazon EMR 控制台,以便其易于使用。请参阅 控制台中的新增功能,以了解有关新旧控制台体验差异的信息。

New console
使用新控制台启动步骤执行
  1. 登录 Amazon Web Services Management Console 并打开 Amazon EMR 控制台,网址为 https://console.aws.amazon.com/emr

  2. 在左侧导航窗格中的 EMR on EC2 下,选择 Clusters(集群),然后选择 Create cluster(创建集群)。

  3. Steps(步骤)下,选择 Add step(添加步骤)。在 Add Step(添加步骤)对话框中,输入相应的字段值。选项因步骤类型而异。要添加步骤并退出对话框,请选择 Add step(添加步骤)。

  4. Cluster termination(集群终止)下,选中 Terminate cluster after last step completes(最后一步完成后终止集群)复选框。

  5. 选择适用于集群的任何其他选项。

  6. 要启动集群,选择 Create cluster(创建集群)。

Old console
使用旧控制台启动步骤执行
  1. 导航到 Amazon EMR 新控制台,然后从侧面导航栏中选择切换到旧控制台。有关切换到旧控制台后预期情况的更多信息,请参阅 Using the old console

  2. 选择创建集群

  3. 选择 Step execution (步骤执行)

  4. 选择适用于您的应用程序的其它设置,然后选择 Create Cluster (创建集群)

Amazon CLI
使用 Amazon CLI 启动步骤执行
  • 使用 --auto-terminate 命令时指定 create-cluster 参数以创建暂时性集群。

    以下示例说明了如何使用 --auto-terminate 参数。您可以键入以下命令,将 myKey 替换为您的 EC2 密钥对的名称。

    注意

    为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字号 (^)。

    aws emr create-cluster --name "Test cluster" --release-label emr-5.36.1 \ --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey \ --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/] --instance-type m5.xlarge --instance-count 3 --auto-terminate
API
使用 Amazon EMR API 关闭步骤执行