当我使用自动终止策略时,为什么我的 EMR 集群没有终止或者没有早于预期终止?
上次更新日期:2022 年 12 月 23 日
我为 Amazon EMR 集群配置了自动终止策略。该集群要么保持活动状态运行,要么在自动终止策略中配置的空闲超时之前终止。
简短描述
创建 EMR 集群时,您可以启用自动终止策略。自动终止策略会在特定空闲时间后终止集群。
解决方法
1. 确保 Amazon Elastic Compute Cloud(Amazon EC2)实例配置文件角色 EMR_EC2_DefaultRole 拥有以下权限。如果 EMR EC2 实例配置文件角色没有这些权限,则集群将会保持活动状态,即便它满足空时超时要求。
{
"Version": "2012-10-17",
"Statement": {
"Sid": "AllowAutoTerminationPolicyActions",
"Effect": "Allow",
"Action": [
"elasticmapreduce:PutAutoTerminationPolicy",
"elasticmapreduce:GetAutoTerminationPolicy",
"elasticmapreduce:RemoveAutoTerminationPolicy"
],
"Resource": "your-resources"
}
在 Amazon EMR 版本 5.34 到 5.36 及 6.4.0 或更高版本中,当以下条件为 true 时,集群将会变为空闲状态:
- 没有活动的 YARN 应用程序。
- HDFS 利用率低于 10%。
- 没有活动的 EMR 笔记本或 EMR Studio 连接。
- 没有正在使用种的集群上应用程序用户界面。
在 Amazon EMR 版本 5.30.0 到 5.33.1 及 6.1.0 到 6.3.0中,当以下条件为 true 时,集群将会变为空闲状态:
- 没有活动的 YARN 应用程序。
- HDFS 利用率低于 10%。
- 集群没有活动的 Spark 任务。
2. 确保指标收集器进程正在运行。指标收集器进程收集指标以确定自动终止。运行以下命令来检查指标收集器进程:
ps -ef|grep metrics-collector
-或者-
systemctl status metricscollector.service
有关更多信息,请参阅如何在 Amazon EMR 中重启服务?
3. 当您使用自动终止策略启用自动终止时,Amazon EMR 会每隔一分钟发出一个 AutoTerminationClusterIdle Amazon CloudWatch 指标。此指标用于评估集群是否满足空闲状态要求。如果此指标显示“1”,则集群处于空闲状态。如果显示“0”,则集群仍处于活动状态。
查看 EMR 集群的 CloudWatch 指标并验证集群中的 AutoTerminationisCluseterIdle CloudWatch metric is continuously 是否持续为“1”。如果持续为“1”,则集群符合自动终止条件。