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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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

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

创建长时间运行的集群

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

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

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

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

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

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

注意

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

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

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

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

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

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

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

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

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

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

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

    以下示例说明了如何使用 --auto-terminate 参数。您可以键入以下命令并替换myKey为您的 EC2 key pair 的名称。

    注意

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

    aws emr create-cluster --name "Test cluster" --release-label emr-7.9.0 \ --applications Name=Hive Name=Pig --use-default-roles --ec2-attributes KeyName=myKey \ --steps Type=PIG,Name="Pig Program",ActionOnFailure=CONTINUE,\ Args=[-f,s3://amzn-s3-demo-bucket/scripts/pigscript.pig,-p,\ INPUT=s3://amzn-s3-demo-bucket/inputdata/,-p,OUTPUT=s3://amzn-s3-demo-bucket/outputdata/,\ $INPUT=s3://amzn-s3-demo-bucket/inputdata/,$OUTPUT=s3://amzn-s3-demo-bucket/outputdata/] --instance-type m5.xlarge --instance-count 3 --auto-terminate
API
使用 Amazon EMR API 在集群启动中关闭步骤执行后终止
  1. 使用RunJobFlow操作创建集群时,请将KeepJobFlowAliveWhenNoSteps属性设置为false

  2. 使用 Amazon EMR API 在集群启动后更改步骤执行后终止配置:

    使用 SetKeepJobFlowAliveWhenNoSteps 动作。