

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

# 在 Amazon EMR 中自定义集群大小调整的预调配超时期限
<a name="emr-provisioning-timeout-resize"></a>

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

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

## 为集群大小调整预调配超时的示例
<a name="emr-provisioning-timeout-examples"></a>

**使用 AWS 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
```

**为调整大小和启动指定置备超时时间 AWS 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"}]'
```

## 调整预调配超时大小的注意事项
<a name="emr-provisioning-timeout-considerations"></a>

在为实例集配置集群预调配超时时，请考虑以下行为。
+ 您可以为竞价型实例和按需实例配置预调配超时。最小预调配超时为 5 分钟。最大预调配超时为 7 天。
+ 您只能为使用实例集的 EMR 集群配置预调配超时。您必须分别配置每个核心和任务实例集。
+ 创建集群时，您可以配置预调配超时。您可以为正在运行的集群添加超时或更新现有超时。
+ 如果您提交多个调整大小操作，则 Amazon EMR 会跟踪每个调整大小操作的预调配超时。例如，将集群的配置超时设置为*60*分钟。然后，*R1*按时提交调整大小操作*T1*。一次提交第二次调整大小操作*R2**T2*。R1 的配置超时到期时间为。*T1 \$1 60 minutes*R2 的配置超时到期时间为。*T2 \$1 60 minutes*
+ 如果您在超时到期之前提交新的纵向扩展大小调整操作，则 Amazon EMR 将继续尝试为您的 EMR 集群预调配容量。