在 Amazon EMR 中自定义集群大小调整的预调配超时期限 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 Amazon EMR 中自定义集群大小调整的预调配超时期限

您可以为集群中的每个实例集定义预调配竞价型实例的超时期限。如果 Amazon EMR 无法预调配 Spot 容量,则它将取消调整大小请求并停止尝试预调配额外的 Spot 容量。创建集群时,您可以配置超时。对于正在运行的集群,您可以添加或更新超时。

超时时间到期后,Amazon EMR 会自动将事件发送到亚马逊 CloudWatch 事件流。使用 CloudWatch,您可以创建根据指定模式匹配事件的规则,然后将事件路由到目标以采取行动。例如,您可以将规则配置为发送电子邮件通知。有关如何创建规则的更多信息,请参阅使用为 Amazon EMR 事件创建规则 CloudWatch。有关不同事件详细信息的更多信息,请参阅实例集状态更改事件

为集群大小调整预调配超时的示例

使用 Amazon CLI命令为调整大小指定预调配超时

以下示例使用 create-cluster 命令为调整大小添加预调配超时。

aws emr create-cluster \ --release-label emr-5.35.0 \ --service-role EMR_DefaultRole \ --ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-XXXXX"]}' \ --instance-fleets '[{"InstanceFleetType":"MASTER","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"Master - 1"},{"InstanceFleetType":"CORE","TargetOnDemandCapacity":1,"TargetSpotCapacity":1,"LaunchSpecifications":{"SpotSpecification":{"TimeoutDurationMinutes":120,"TimeoutAction":"SWITCH_TO_ON_DEMAND"},"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":20},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":25}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":1,"InstanceType":"m5.xlarge"}],"Name":"Core - 2"}]'

以下示例使用 modify-instance-fleet 命令为调整大小添加预调配超时。

aws emr modify-instance-fleet \ --cluster-id j-XXXXXXXXXXXXX \ --instance-fleet '{"InstanceFleetId":"if-XXXXXXXXXXXX","ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":30},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":60}}}' \ --region us-east-1

以下示例使用 add-instance-fleet-command 为调整大小添加预调配超时。

aws emr add-instance-fleet \ --cluster-id j-XXXXXXXXXXXXX \ --instance-fleet '{"InstanceFleetType":"TASK","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"TaskFleet","ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":30},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":35}}}' \ --region us-east-1

为调整大小和启动指定配置超时时间 Amazon CLI

以下示例使用 create-cluster 命令为调整大小和启动添加预调配超时。

aws emr create-cluster \ --release-label emr-5.35.0 \ --service-role EMR_DefaultRole \ --ec2-attributes '{"InstanceProfile":"EMR_EC2_DefaultRole","SubnetIds":["subnet-XXXXX"]}' \ --instance-fleets '[{"InstanceFleetType":"MASTER","TargetOnDemandCapacity":1,"TargetSpotCapacity":0,"LaunchSpecifications":{"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":100,"InstanceType":"m5.xlarge"}],"Name":"Master - 1"},{"InstanceFleetType":"CORE","TargetOnDemandCapacity":1,"TargetSpotCapacity":1,"LaunchSpecifications":{"SpotSpecification":{"TimeoutDurationMinutes":120,"TimeoutAction":"SWITCH_TO_ON_DEMAND"},"OnDemandSpecification":{"AllocationStrategy":"lowest-price"}},"ResizeSpecifications":{"SpotResizeSpecification":{"TimeoutDurationMinutes":20},"OnDemandResizeSpecification":{"TimeoutDurationMinutes":25}},"InstanceTypeConfigs":[{"WeightedCapacity":1,"EbsConfiguration":{"EbsBlockDeviceConfigs":[{"VolumeSpecification":{"SizeInGB":32,"VolumeType":"gp2"},"VolumesPerInstance":2}]},"BidPriceAsPercentageOfOnDemandPrice":1,"InstanceType":"m5.xlarge"}],"Name":"Core - 2"}]'

调整预调配超时大小的注意事项

在为实例集配置集群预调配超时时,请考虑以下行为。

  • 您可以为竞价型实例和按需实例配置预调配超时。最小预调配超时为 5 分钟。最大预调配超时为 7 天。

  • 您只能为使用实例集的 EMR 集群配置预调配超时。您必须分别配置每个核心和任务实例集。

  • 创建集群时,您可以配置预调配超时。您可以为正在运行的集群添加超时或更新现有超时。

  • 如果您提交多个调整大小操作,则 Amazon EMR 会跟踪每个调整大小操作的预调配超时。例如,将集群的预调配超时设置为 60 分钟。然后,在时间 T1 时提交调整大小操作 R1。在时间 T2 时提交第二次调整大小操作 R2。R1 的预调配超时在 T1 + 60 分钟时过期。R2 的预调配超时在 T2 + 60 分钟时过期。

  • 如果您在超时到期之前提交新的纵向扩展大小调整操作,则 Amazon EMR 将继续尝试为您的 EMR 集群预调配容量。