Personalizza un periodo di timeout di provisioning per il ridimensionamento del cluster in Amazon EMR - Amazon EMR

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Personalizza un periodo di timeout di provisioning per il ridimensionamento del cluster in Amazon EMR

È possibile definire un periodo di timeout per il provisioning delle istanze spot per ogni parco istanze nel tuo cluster. Se Amazon non è in EMR grado di fornire la capacità Spot, annulla la richiesta di ridimensionamento e interrompe i tentativi di fornire capacità Spot aggiuntiva. Quando crei un cluster, puoi configurare il timeout. Per un cluster in esecuzione, puoi aggiungere o aggiornare un timeout.

Alla scadenza del periodo di timeout, Amazon invia EMR automaticamente gli eventi a uno stream di Amazon CloudWatch Events. Con CloudWatch, puoi creare regole che corrispondano agli eventi in base a uno schema specifico e quindi indirizzare gli eventi agli obiettivi affinché agiscano. Ad esempio, è possibile configurare una regola per inviare una notifica via email. Per ulteriori informazioni su come creare regole, consulta Creazione di regole per EMR gli eventi Amazon con CloudWatch. Per ulteriori informazioni sui dati dei diversi eventi, consulta Eventi di modifica dello stato del parco istanze.

Esempi di timeout di provisioning per il ridimensionamento del cluster

Specificate un timeout di provisioning per il ridimensionamento con AWS CLI

L'esempio seguente utilizza il comando create-cluster per aggiungere un timeout di provisioning per il ridimensionamento.

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'esempio seguente utilizza il comando modify-instance-fleet per aggiungere un timeout di provisioning per il ridimensionamento.

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'esempio seguente utilizza il add-instance-fleet-command per aggiungere un timeout di provisioning per il ridimensionamento.

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

Specificate un timeout di provisioning per il ridimensionamento e l'avvio con AWS CLI

L'esempio seguente utilizza il comando create-cluster per aggiungere un timeout di provisioning per il ridimensionamento e l'avvio.

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

Considerazioni sui timeout del provisioning del ridimensionamento

Quando configuri i timeout di provisioning del cluster per i tuoi parchi istanze, considera i seguenti comportamenti.

  • È possibile configurare i timeout di provisioning sia per le istanze spot che on demand. Il timeout minimo di provisioning è di 5 minuti. Il timeout massimo di provisioning è di 7 giorni.

  • È possibile configurare i timeout di provisioning solo per un EMR cluster che utilizza flotte di istanze. È necessario configurare separatamente ciascun parco istanze principale e dell'attività.

  • Quando crei un cluster, puoi configurare i timeout di provisioning. È possibile aggiungere un timeout o aggiornare un timeout esistente per un cluster in esecuzione.

  • Se invii più operazioni di ridimensionamento, Amazon EMR tiene traccia dei timeout di provisioning per ogni operazione di ridimensionamento. Ad esempio, imposta il timeout di provisioning su un cluster su 60 minuti. Quindi, invia un'operazione di ridimensionamento R1 alla volta T1. Invia una seconda operazione di ridimensionamento R2 alla volta T2. Il timeout di provisioning per R1 scade alle T1 + 60 minutes. Il timeout di provisioning per R2 scade alle T2 + 60 minutes.

  • Se invii una nuova operazione di ridimensionamento con scalabilità verticale prima della scadenza del timeout, Amazon EMR continua a tentare di fornire capacità per il tuo cluster. EMR