Todos os produtos
Search
Central de documentação

E-MapReduce:Configure custom auto scaling rules

Última atualização: Jun 27, 2026

As regras personalizadas de auto scaling permitem que o EMR adicione ou remova nós de tarefa automaticamente em resposta a flutuações de carga de trabalho, mantendo os jobs em execução sem provisionar recursos em excesso.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster DataLake, Dataflow, processamento analítico online (OLAP), DataServing ou personalizado

  • Um grupo de nós de tarefa com instâncias de pagamento conforme o uso ou preemptíveis no cluster. Para obter detalhes, consulte Criar um grupo de nós

Limitações

  • É possível adicionar até 10 tipos de instância do Elastic Compute Service (ECS) por grupo de nós. Durante o scale-out do cluster, o EMR tenta cada tipo de instância em ordem, começando pelo primeiro. Caso um tipo de instância esteja indisponível, o EMR utiliza o próximo tipo da lista como fallback.

  • Apenas clusters com o serviço YARN implantado oferecem suporte a regras de dimensionamento baseadas em carga.

Observações de uso

  • As regras de auto scaling são aplicadas por grupo de nós. Se nenhuma regra for configurada para um determinado grupo, ele nunca será dimensionado automaticamente.

  • O EMR localiza e lista automaticamente os tipos de instância ECS que correspondem às especificações definidas por você. Selecione pelo menos um tipo de instância na lista para permitir que o cluster realize o dimensionamento com base nesse tipo.

Importante

Quando várias regras estão configuradas e suas condições de acionamento são atendidas simultaneamente, o EMR as executa na seguinte ordem: 1. As regras de scale-out têm precedência sobre as regras de scale-in. 2. As regras baseadas em tempo e em carga são executadas na ordem em que são acionadas. 3. As regras baseadas em carga acionadas pela mesma métrica seguem a ordem de configuração.

Aviso

Não defina regras de scale-out e scale-in para execução no mesmo horário. A sobreposição de horários pode causar conflitos que impedem a conclusão das operações de dimensionamento.

Escolher um tipo de dimensionamento

Antes de configurar as regras, identifique qual tipo de dimensionamento melhor se adapta à sua carga de trabalho:

Tipo de dimensionamento

Quando usar

Exemplo

Dimensionamento baseado em tempo

Cargas de trabalho seguem cronogramas previsíveis

Adicionar nós às 08:00 e removê-los às 20:00 em dias úteis; reduzir um cluster de desenvolvimento após o horário comercial

Dimensionamento baseado em carga

Flutuações de carga de trabalho são imprevisíveis

Picos no processamento de pedidos que variam conforme o horário do dia ou a demanda dos usuários

Apenas clusters com YARN implantado oferecem suporte ao dimensionamento baseado em carga. Se o seu cluster não possuir o YARN, utilize o dimensionamento baseado em tempo.

Configurar regras de auto scaling

Método 1: Adicionar regras a um cluster existente

  1. Faça logon no console do EMR.

  2. Na barra de navegação superior, selecione uma região e um grupo de recursos.

  3. Na página EMR on ECS, clique em Cluster ID/Name.

  4. Clique em Auto Scaling.

  5. Na seção Configure Auto Scaling Rule, clique em Configure Auto Scaling e, em seguida, clique em Custom Auto Scaling Rule. Na caixa de diálogo Modify Auto Scaling Rule, clique em Reconfigure.

  6. Localize o grupo de nós desejado e clique em Edit na coluna Actions.

  7. No painel Configure Auto Scaling, defina os parâmetros. Consulte Parâmetros de auto scaling.

  8. Clique em Save And Apply. As atividades de scale-out serão acionadas para o grupo de nós quando as condições configuradas forem atendidas.

Método 2: Adicionar regras durante a criação de um cluster

  1. Faça logon no console do EMR.

  2. Na barra de navegação superior, selecione uma região e um grupo de recursos.

  3. Clique em Create Cluster. Para obter detalhes, consulte Criar um cluster.

    Adicione um grupo de nós de tarefa de pagamento conforme o uso antes de configurar as regras de auto scaling.
  4. Na seção Cluster Scaling, clique em Custom Auto Scaling Rule. Localize o grupo de nós desejado e clique em Edit na coluna Actions.

  5. No painel Configure Auto Scaling, defina os parâmetros. Consulte Parâmetros de auto scaling.

  6. Clique em Save And Apply. Após a criação do cluster, as atividades de dimensionamento serão acionadas quando as condições configuradas forem atendidas.

Método 3: Configurar regras com o SDK

Chame as seguintes operações de API para configurar regras de auto scaling programaticamente:

Operação

Descrição

CreateCluster

Criar um cluster com regras de auto scaling

CreateNodeGroup

Criar um grupo de nós de tarefa com regras de auto scaling

PutAutoScalingPolicy

Configurar ou atualizar regras de auto scaling para um grupo de nós de tarefa existente

O exemplo Java a seguir configura uma regra de scale-out baseada em carga usando PutAutoScalingPolicy.

Utilize um token do Security Token Service (STS) para inicializar o cliente de credenciais. Os tokens STS fornecem acesso de curta duração e são mais seguros do que credenciais de longo prazo. Para obter detalhes, consulte Gerenciar credenciais de acesso .
// This file is auto-generated, don't edit it. Thanks.
package com.aliyun.sample;

import com.aliyun.tea.*;

public class Sample {

    /**
     * description

Parâmetros de auto scaling

Limites de contagem de nós

Defina os limites superior e inferior para o número de nós no grupo de nós. Para modificar esses limites, clique em Modify Limit.

Parâmetro

Descrição

Maximum Number Of Instances

O grupo de nós interrompe o scale-out ao atingir esta contagem.

Minimum Number Of Instances

O grupo de nós interrompe o scale-in ao atingir esta contagem.

Parâmetros de dimensionamento baseado em tempo

Regras baseadas em tempo adicionam ou removem um número fixo de nós em horários agendados — diariamente, semanalmente ou mensalmente. Configure tanto as regras de scale-out quanto as de scale-in para gerenciar todo o ciclo de dimensionamento.

Importante

As regras de scale-out e scale-in não devem compartilhar o mesmo horário de execução.

A tabela a seguir descreve os parâmetros da regra de scale-out. As regras de scale-in utilizam os mesmos parâmetros.

Parâmetro

Descrição

Scale Out Type

Selecione Scale Out by Time.

Rule Name

Um nome exclusivo para a regra dentro do cluster.

Frequency

Execute Repeatedly: aciona no mesmo horário todos os dias, semanas ou meses. Execute Only Once: aciona uma única vez no horário especificado.

Execution Time

O horário em que a regra é acionada.

Rule Expiration Time

A data após a qual a regra deixa de ser acionada. Disponível apenas quando Frequency está definido como Execute Repeatedly.

Retry Time Range

Duração das tentativas do EMR caso o dimensionamento falhe no horário agendado. Valores válidos: 0–3600 segundos. O EMR tenta novamente a cada 30 segundos dentro desta janela. Por exemplo, se outra operação de dimensionamento estiver em execução ou em período de resfriamento (cooldown) no horário agendado, o EMR continuará tentando até que a janela expire ou as condições sejam atendidas.

Nodes For Each Scale Out

Quantidade de nós a serem adicionados cada vez que a regra for acionada.

Best-effort Delivery

Quando ativado, o EMR entrega todos os nós provisionados com sucesso, mesmo que a quantidade total solicitada não esteja disponível. Por exemplo, se você solicitar 100 nós e apenas 90 estiverem disponíveis, o EMR entregará 90 em vez de falhar toda a operação. Ative esta opção para maximizar o sucesso do scale-out.

Parâmetros de dimensionamento baseado em carga

O dimensionamento baseado em carga requer o serviço YARN.

Regras baseadas em carga são acionadas quando as métricas de recursos do YARN ultrapassam um limiar. Isso permite que o cluster responda à pressão real da carga de trabalho, em vez de seguir um cronograma fixo.

A tabela a seguir descreve os parâmetros da regra de scale-out. As regras de scale-in utilizam os mesmos parâmetros.

Parâmetro

Descrição

Scale Out Type

Selecione Scale Out by Load.

Rule Name

Um nome exclusivo para a regra dentro do cluster.

Load Metric-based Trigger Conditions

Selecione pelo menos uma métrica de carga do YARN e configure seu limiar. Clique em Add Metric para adicionar várias métricas. Para ver as métricas disponíveis, consulte Métricas de carga do YARN.

Multi-metric Relationship

All Metrics Meet the Conditions: todas as métricas selecionadas devem ultrapassar seus limiares para acionar a regra. Any Metric Meets the Condition: qualquer métrica individual que ultrapasse seu limiar aciona a regra.

Statistical Period

Janela de avaliação para cada métrica. O EMR coleta dados, agrega-os (média, máximo ou mínimo) e compara o resultado com o limiar. Um período mais curto torna a regra mais sensível a picos.

Repetitions That Trigger Scale Out

Número de períodos de avaliação consecutivos nos quais a métrica deve ultrapassar o limiar antes que a regra seja acionada.

Nodes For Each Scale Out

Quantidade de nós a serem adicionados cada vez que a regra for acionada.

Best-effort Delivery

Quando ativado, o EMR entrega todos os nós provisionados com sucesso, mesmo que a quantidade total solicitada não esteja disponível. Decida com base na aceitabilidade de um scale-out parcial para sua carga de trabalho.

Cooldown Time

Intervalo mínimo entre duas atividades consecutivas de scale-out. Durante o cooldown, as condições de scale-out são monitoradas, mas nenhuma ação é tomada. Após o término do cooldown, a próxima violação do limiar aciona um novo scale-out.

Effective Time Period

Janela de tempo em que a regra permanece ativa. Fora dessa janela, a regra não é acionada, mesmo que as condições sejam atendidas. Deixe em branco para manter a regra ativa 24 horas por dia.

Descrições das métricas de auto scaling do EMR correspondentes às métricas de carga do YARN

Para métricas relacionadas a filas, queue_name especifica o nome da fila. O valor padrão é root . Especifique um nome de fila personalizado conforme necessário.
Para métricas relacionadas a partições, partition_name especifica o nome da partição. Este campo não pode ficar em branco.
Métrica de auto scaling do EMRServiçoDescrição
yarn_resourcemanager_queue_AvailableVCoresYARNNúmero de núcleos virtuais de CPU disponíveis para a fila especificada.
yarn_resourcemanager_queue_PendingVCoresYARNNúmero de núcleos virtuais de CPU pendentes para a fila especificada.
yarn_resourcemanager_queue_AllocatedVCoresYARNNúmero de núcleos virtuais de CPU alocados para a fila especificada.
yarn_resourcemanager_queue_ReservedVCoresYARNNúmero de núcleos virtuais de CPU reservados para a fila especificada.
yarn_resourcemanager_queue_AvailableMBYARNQuantidade de memória disponível para a fila especificada.
yarn_resourcemanager_queue_PendingMBYARNQuantidade de memória pendente para a fila especificada.
yarn_resourcemanager_queue_AllocatedMBYARNQuantidade de memória alocada para a fila especificada.
yarn_resourcemanager_queue_ReservedMBYARNQuantidade de memória reservada para a fila especificada.
yarn_resourcemanager_queue_AppsRunningYARNNúmero de jobs em execução na fila especificada.
yarn_resourcemanager_queue_AppsPendingYARNNúmero de jobs suspensos na fila especificada.
yarn_resourcemanager_queue_AppsKilledYARNNúmero de jobs interrompidos na fila especificada.
yarn_resourcemanager_queue_AppsFailedYARNNúmero de jobs com falha na fila especificada.
yarn_resourcemanager_queue_AppsCompletedYARNNúmero de jobs concluídos na fila especificada.
yarn_resourcemanager_queue_AppsSubmittedYARNNúmero de jobs enviados na fila especificada.
yarn_resourcemanager_queue_AllocatedContainersYARNNúmero de contêineres alocados na fila especificada.
yarn_resourcemanager_queue_PendingContainersYARNNúmero de contêineres pendentes na fila especificada.
yarn_resourcemanager_queue_ReservedContainersYARNNúmero de contêineres reservados na fila especificada.
yarn_resourcemanager_queue_AvailableMBPercentageYARNPorcentagem de memória disponível na fila especificada. Calculado como: AvailableMemory / Total Memory.
Nota

Disponível para EMR V3.43.0, V5.9.0 e versões menores posteriores.

yarn_resourcemanager_queue_PendingContainersRatioYARNProporção de contêineres pendentes em relação aos contêineres alocados na fila especificada. Calculado como: PendingContainers / AllocatedContainers.
Nota

Disponível para EMR V3.43.0, V5.9.0 e versões menores posteriores.

yarn_resourcemanager_queue_AvailableVCoresPercentageYARNPorcentagem de núcleos de CPU disponíveis na fila especificada. Calculado como: AvailableVCores / (ReservedVCores + AvailableVCores + AllocatedVCores) * 100.
Nota

Disponível para EMR V3.43.0, V5.9.0 e versões menores posteriores.

yarn_cluster_numContainersByPartitionYARNNúmero de contêineres para a partição especificada.
Nota

Disponível para EMR V3.44.0, V5.10.0 e versões menores posteriores.

yarn_cluster_usedMemoryMBByPartitionYARNQuantidade de memória utilizada para a partição especificada.
Nota

Disponível para EMR V3.44.0, V5.10.0 e versões menores posteriores.

yarn_cluster_availMemoryMBByPartitionYARNQuantidade de memória disponível para a partição especificada.
Nota

Disponível para EMR V3.44.0, V5.10.0 e versões menores posteriores.

yarn_cluster_usedVirtualCoresByPartitionYARNNúmero de núcleos de CPU utilizados para a partição especificada.
Nota

Disponível para EMR V3.44.0, V5.10.0 e versões menores posteriores.

yarn_cluster_availableVirtualCoresByPartitionYARNNúmero de núcleos de CPU disponíveis para a partição especificada.
Nota

Disponível para EMR V3.44.0, V5.10.0 e versões menores posteriores.

Solução de problemas

O scale-out falha ou tem sucesso apenas parcial

As falhas de scale-out geralmente têm duas causas:

  • Escassez de recursos ECS: O tipo de instância solicitado possui estoque insuficiente na zona selecionada. A disponibilidade de recursos ECS é dinâmica e pode se esgotar temporariamente durante períodos de alta demanda.

  • Apenas um tipo de instância configurado: Se somente um tipo de instância estiver definido para o grupo de nós e esse tipo se esgotar, toda a solicitação de scale-out falhará.

Para melhorar a confiabilidade do scale-out:

  • Enable Best-effort Delivery: Quando apenas algumas das instâncias solicitadas estiverem disponíveis, o EMR entregará essas instâncias em vez de falhar toda a operação.

  • Configurar vários tipos de instância: Adicione até 10 tipos de instância ao grupo de nós de tarefa. O EMR tenta cada tipo em ordem — se o primeiro estiver indisponível, ele usa o próximo como fallback. Para obter detalhes sobre como adicionar tipos de instância, consulte Criar um grupo de nós.

Próximos passos

  • Para monitorar a atividade de dimensionamento, verifique a aba Auto Scaling do seu cluster.

  • Para criar ou modificar o grupo de nós de tarefa onde as regras são aplicadas, consulte Criar um grupo de nós.

  • Para gerenciar políticas de auto scaling programaticamente, consulte PutAutoScalingPolicy.