Personalizar um período de tempo limite de provisionamento para redimensionamento do cluster no Amazon EMR - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Personalizar um período de tempo limite de provisionamento para redimensionamento do cluster no Amazon EMR

É possível definir um período de tempo limite para provisionar instâncias spot para cada frota do cluster. Se o Amazon EMR não conseguir provisionar a capacidade spot, ele cancelará a solicitação de redimensionamento e interromperá as tentativas de provisionar capacidade spot adicional. Ao criar um cluster, é possível configurar o tempo limite. Em um cluster em execução, é possível adicionar ou atualizar um tempo limite.

Quando o período de tempo limite expira, o Amazon EMR envia automaticamente os eventos para um stream do Amazon Events. CloudWatch Com CloudWatch, você pode criar regras que correspondam aos eventos de acordo com um padrão especificado e, em seguida, rotear os eventos aos alvos para que sejam executadas ações. Por exemplo, é possível configurar uma regra para enviar uma notificação por e-mail. Para obter mais informações sobre como criar regras, consulte Criação de regras para eventos do Amazon EMR com CloudWatch. Para obter mais informações sobre diferentes detalhes de evento, consulte Eventos de alteração de estado da frota de instâncias.

Exemplos de tempos limite de provisionamento para redimensionamento de clusters

Especifique um tempo limite de provisionamento para redimensionar usando a AWS CLI

O exemplo a seguir usa o comando create-cluster para adicionar um tempo limite de provisionamento para redimensionamento.

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

O exemplo a seguir usa o comando modify-instance-fleet para adicionar um tempo limite de provisionamento para redimensionamento.

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

O exemplo a seguir usa add-instance-fleet-command para adicionar um tempo limite de provisionamento para redimensionamento.

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

Especifique um tempo limite de provisionamento para redimensionar e iniciar com o AWS CLI

O exemplo a seguir usa o comando create-cluster para adicionar um tempo limite de provisionamento para redimensionamento e inicialização.

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

Considerações para redimensionamento dos tempos limite de provisionamento

Ao configurar os tempos limite de provisionamento de clusters para suas frotas de instâncias, leve em consideração os comportamentos a seguir.

  • É possível configurar os tempos limite de provisionamento para instâncias spot e sob demanda. O tempo limite mínimo de provisionamento é de cinco minutos. O tempo limite máximo de provisionamento é de sete dias.

  • Só é possível configurar tempos limite de provisionamento para um cluster do EMR que usa frotas de instâncias. É necessário configurar cada frota central e de tarefa separadamente.

  • Ao criar um cluster, você pode configurar os tempos limite de provisionamento. É possível adicionar um tempo limite ou atualizar um tempo limite atual para um cluster em execução.

  • Se você enviar múltiplas operações de redimensionamento, o Amazon EMR rastreará os tempos limite de provisionamento para cada operação de redimensionamento. Por exemplo, defina o tempo limite de provisionamento de um cluster para 60 minutos. Em seguida, envie uma operação de redimensionamento R1 no tempo T1. Envie uma segunda operação de redimensionamento R2 no tempo T2. O tempo limite de provisionamento para R1 expira em T1 + 60 minutos. O tempo limite de provisionamento para R2 expira em T2 + 60 minutos.

  • Se você enviar uma nova operação de redimensionamento para aumentar a escala verticalmente antes que o tempo limite expire, o Amazon EMR continuará sua tentativa de provisionar capacidade para o cluster do EMR.