Personnaliser le délai d'expiration de la mise en service pour le redimensionnement du cluster dans Amazon EMR - Amazon EMR

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Personnaliser le délai d'expiration de la mise en service pour le redimensionnement du cluster dans Amazon EMR

Vous pouvez définir un délai d'expiration pour mettre en service des instances Spot pour chaque flotte de votre cluster. Si Amazon EMR ne parvient pas à fournir la capacité Spot, il annule la demande de redimensionnement et arrête d'essayer de fournir de la capacité Spot supplémentaire. Lorsque vous créez un cluster, vous pouvez créer un délai d'expiration. Pour un cluster en cours d'exécution, vous pouvez ajouter ou mettre à jour un délai d'expiration.

Lorsque le délai d'expiration expire, Amazon EMR envoie automatiquement les événements vers un flux CloudWatch Amazon Events. Avec CloudWatch, vous pouvez créer des règles qui correspondent aux événements selon un modèle spécifié, puis acheminer les événements vers des cibles pour qu'ils prennent des mesures. Par exemple, vous pouvez créer une règle pour envoyer une notification par e-mail. Pour plus d'informations sur la création de règles, consultez Création de règles pour les événements Amazon EMR avec CloudWatch. Pour plus d'informations sur les différents détails de l'événement, consultez Événements de modification de l'état de la flotte d'instances.

Exemples de délais de mise en service pour le redimensionnement du cluster

Spécifiez un délai de mise en service pour le redimensionnement à l'aide de l'interface AWS CLI

L'exemple suivant utilise la commande create-cluster pour ajouter un délai de mise en service pour le redimensionnement.

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"}]'

L'exemple suivant utilise la commande modify-instance-fleet pour ajouter un délai de mise en service pour le redimensionnement.

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

L'exemple suivant utilise le add-instance-fleet-command pour ajouter un délai de mise en service pour le redimensionnement.

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

Spécifiez un délai d'approvisionnement pour le redimensionnement et le lancement à l'aide du AWS CLI

L'exemple suivant utilise la commande create-cluster pour ajouter un délai de mise en service pour le redimensionnement et le lancement.

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"}]'

Considérations relatives au redimensionnement des délais de mise en service

Lorsque vous configurez les délais d'expiration de la mise en service des clusters pour vos flottes d'instances, tenez compte des comportements suivants.

  • Vous pouvez créer des délais de mise en service pour des instances Spot et à la demande. Le délai de mise en service minimal est de 5 minutes. Le délai de mise en service maximal est de 7 jours.

  • Vous ne pouvez configurer les délais de mise en service que pour un cluster EMR qui utilise des flottes d'instances. Vous devez configurer chaque flotte de tâches et nœud principal séparément.

  • Lorsque vous créez un cluster, vous pouvez créer des délais de mise en service. Vous pouvez ajouter un délai d'expiration ou mettre à jour un délai d'expiration existant pour un cluster en cours d'exécution.

  • Si vous soumettez plusieurs opérations de redimensionnement, Amazon EMR suit les délais de mise en service pour chaque opération de redimensionnement. Par exemple, définissez le délai de mise en service d'un cluster sur 60 minutes. Soumettez ensuite une opération de redimensionnement R1 à l'instant T1. Soumettez une deuxième opération de redimensionnement R2 à l'instant T2. Le délai de mise en service pour R1 expirera à T1 +60 minutes. Le délai de mise en service pour R2 expirera à T2 + 60 minutes.

  • Si vous soumettez une nouvelle opération d'augmentation avant l'expiration du délai imparti, Amazon EMR continue d'essayer de fournir de la capacité pour votre cluster EMR.