将集群配置为在步骤执行后继续或终止
本主题解阐释了使用长时间运行的集群与创建在最后一步运行后关闭的临时集群之间的区别。它还介绍了如何为集群配置步骤执行。
创建长时间运行的集群
默认情况下,使用控制台或Amazon CLI的集群正在长时间运行。长时间运行的集群将继续运行、接受工作并累积费用,直到您采取措施关闭它们。
长时间运行的集群在以下情况十分有效:
-
当你需要交互式或自动查询数据时。
-
当您需要与集群上托管的大数据应用程序持续交互时。
-
当您定期处理大型数据集或需要频繁处理时,每次都无法有效启动新集群和加载数据。
您还可以在长时间运行的集群上设置终止保护,以避免意外或错误关闭 EC2 实例。有关更多信息,请参阅 使用终止保护。
Amazon EMR 会为具有多个主节点 (master node) 的所有集群自动启用终止保护,并覆盖您在创建集群时应用的所有步骤执行设置。您可以在集群启动后禁用终止保护。请参阅为正在运行的集群配置终止保护。要关闭具有多个主节点的集群,您必须先修改集群属性,才能禁用终止保护。有关说明,请参阅终止具有多个主节点 (master node) 的 Amazon EMR 集群。
将集群配置为在步骤执行后终止
在步骤执行后配置终止时,集群将启动、运行引导启动操作,然后运行您指定的步骤。最后一步完成后,Amazon EMR 将终止集群的 Amazon EC2 实例。默认情况下,您使用 Amazon EMR API 启动的集群启用了步骤执行。
步骤执行后终止,对于定期执行处理任务(例如日常数据处理运行)的集群来说,极其有效。步骤执行还可帮助您确保您只需按处理数据所需的时间付费。有关步骤的更多信息,请参阅 向集群提交工作。
使用 Amazon EMRAPI 禁用步骤执行
-
使用 RunJobFlow 操作创建集群时,应将 KeepJobFlowAliveWhenNoSteps 属性设置为
true
。
使用Amazon Web Services Management Console中的快速选项启用步骤执行
-
通过以下链接打开 Amazon EMR 控制台:https://console.aws.amazon.com/elasticmapreduce/
。 -
选择 Create cluster (创建集群)。
-
选择 Step execution (步骤执行)。
-
选择适用于您的应用程序的其它设置,然后选择 Create Cluster (创建集群)。
使用Amazon Web Services Management Console中的高级选项 (Advanced Options) 启用步骤执行
-
通过以下链接打开 Amazon EMR 控制台:https://console.aws.amazon.com/elasticmapreduce/
。 -
选择 Create cluster (创建集群)。
-
选择 Go to advanced options (转到高级选项)。
-
在 Add steps (optional) (添加步骤(可选)) 下,选择 Auto-terminate cluster after the last step is completed (完成最后的步骤后,自动终止集群)。
-
选择适用于您的应用程序的其它设置,然后选择 Create Cluster (创建集群)。
使用Amazon CLI启用步骤执行
-
使用
--auto-terminate
命令时指定create-cluster
参数以创建暂时性集群。以下示例演示如何使用
--auto-terminate
参数。您可以键入以下命令,将myKey
替换为您的 EC2 密钥对的名称。注意 为了便于读取,包含 Linux 行继续符(\)。它们可以通过 Linux 命令删除或使用。对于 Windows,请将它们删除或替换为脱字符 (^)。
aws emr create-cluster --name "
Test cluster
" --release-labelemr-5.36.0
\ --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-typem5.xlarge
--instance-count3
--auto-terminate