Usar a proteção contra término - 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á.

Usar a proteção contra término

A proteção contra encerramento protege seus clusters contra o encerramento acidental, o que pode ser especialmente útil para clusters de longa execução que processam cargas de trabalho críticas. Quando a proteção contra encerramento está habilitada em um cluster de longa execução, você ainda poderá encerrar o cluster, mas deverá removê-la explicitamente do cluster primeiro. Isso ajuda a garantir que as instâncias do EC2 não sejam encerradas por acidente ou erro. Você pode habilitar a proteção contra encerramento ao criar um cluster e alterar a configuração em um cluster em execução.

Com a proteção contra término habilitada, a ação TerminateJobFlows na API do Amazon EMR não funciona. Os usuários não podem encerrar o cluster usando essa API nem o comando terminate-clusters da AWS CLI. A API retornará um erro, e a CLI será encerrada com um código de retorno diferente de zero. Quando você usar o console do Amazon EMR para encerrar um cluster, será solicitado que você execute uma etapa adicional para desativar a proteção contra término.

Atenção

A proteção contra término não garante que os dados sejam retidos em caso de erro humano ou de solução alternativa. Por exemplo, se um comando de reinicialização for emitido pela linha de comando enquanto estiver conectado à instância usando SSH, se uma aplicação ou um script em execução na instância emitir um comando de reinicialização ou se a API do Amazon EC2 ou do Amazon EMR for usada para desabilitar a proteção contra término. Isso também vale se você estiver executando as versões 7.1 e superiores do Amazon EMR e uma instância ficar insalubre e irrecuperável. Mesmo com a proteção contra término habilitada, os dados salvos no armazenamento da instância, inclusive dados do HDFS, poderão ser perdidos. Grave a saída de dados nos locais do Amazon S3 e crie estratégias de backup conforme a necessidade de seus requisitos de continuidade de negócios.

A proteção contra encerramento não afeta sua capacidade de dimensionar recursos de cluster usando qualquer uma das seguintes ações:

Proteção contra término e o Amazon EC2

A configuração de proteção contra encerramento em um cluster do Amazon EMR corresponde ao DisableApiTermination atributo de todas as instâncias do Amazon EC2 no cluster. Por exemplo, se você habilitar a proteção contra rescisão em um cluster do EMR, o Amazon EMR definirá automaticamente como verdadeiro DisableApiTermination para todas as instâncias do EC2 dentro do cluster do EMR. O mesmo se aplica se você desativar a proteção contra rescisão. O Amazon EMR define automaticamente como false DisableApiTermination para todas as instâncias do EC2 dentro do cluster do EMR. Se você encerrar ou reduzir um cluster do Amazon EMR e as configurações do Amazon EC2 entrarem em conflito para uma instância do EC2, o Amazon EMR priorizará a configuração do Amazon EMR sobre as DisableApiTermination configurações DisableApiStop e no Amazon EC2 e continuará a encerrar a instância do EC2.

Por exemplo, você pode usar o console do Amazon EC2 para habilitar a proteção contra encerramento em uma instância do Amazon EC2 em um cluster do EMR com a proteção contra encerramento desativada. Se você encerrar ou reduzir o cluster com o console do Amazon EMR, o ou AWS CLI a API do Amazon EMR, o Amazon EMR DisableApiTermination substituirá a configuração, a definirá como falsa e encerrará a instância junto com outras instâncias.

Você também pode usar o console do Amazon EC2 para habilitar a proteção de parada em uma instância do Amazon EC2 em um cluster do EMR com a proteção de terminação desativada. Se você encerrar ou reduzir a escala do cluster, o Amazon EMR DisableApiStop define como false no Amazon EC2 e encerra a instância junto com outras instâncias.

O Amazon EMR substitui a DisableApiStop configuração somente quando você encerra ou reduz a escala de um cluster. Quando você ativa ou desativa a proteção contra rescisão em um cluster do EMR, o Amazon EMR não altera a disableApiStop configuração de nenhuma das instâncias do EC2 no respectivo cluster do EMR.

Importante

Se você criar uma instância como parte de um cluster do Amazon EMR com proteção contra encerramento e usar a API ou os comandos do Amazon EC2 para modificar a instância de tal forma, e então a API AWS CLI ou DisableApiTermination os comandos do Amazon EC2 executarem a operaçãoTerminateInstances, a instância do Amazon EC2 false será encerrada. AWS CLI

Proteção contra término e nós não íntegros do YARN

O Amazon EMR verifica periodicamente o status do Apache Hadoop YARN de nós em execução nas instâncias centrais e de tarefa do Amazon EC2 em um cluster. O estado de saúde é relatado pelo serviço NodeManager de verificação de saúde. Se um nó reportarUNHEALTHY, o controlador de instância do Amazon EMR adiciona o nó a uma lista de negação e não aloca contêineres do YARN até que ele volte a funcionar. Dependendo do status da proteção contra rescisão, da substituição de nós com problemas de integridade e da versão de lançamento do Amazon EMR, o Amazon EMR substituirá a instância não íntegra ou interromperá a alocação de controladores para a instância.

Proteção de rescisão e rescisão após a execução da etapa

Quando você ativa a rescisão após a execução da etapa e também ativa a proteção contra rescisão, o Amazon EMR ignora a proteção contra rescisão.

Ao enviar etapas para um cluster, você pode definir a propriedade ActionOnFailure para determinar o que acontecerá se não for possível executar a etapa devido a um erro. Os valores possíveis para essa configuração são TERMINATE_CLUSTER (TERMINATE_JOB_FLOW com versões anteriores) CANCEL_AND_WAIT e CONTINUE. Para ter mais informações, consulte Enviar trabalhos a um cluster.

Se falhar uma etapa configurada com ActionOnFailure set toCANCEL_AND_WAIT, se a terminação após a execução da etapa for ativada, o cluster será encerrado sem executar as etapas subsequentes.

Se ocorrer uma falha em uma etapa configurada com ActionOnFailure definida como TERMINATE_CLUSTER, use a tabela de configurações abaixo para determinar o resultado.

ActionOnFailure Rescisão após a execução da etapa Termination protection Resultado

TERMINATE_CLUSTER

Habilitado

Desabilitado

O cluster é encerrado

Habilitado

Habilitado

O cluster é encerrado

Desabilitado

Habilitado

O cluster continua

Desabilitado

Desabilitado

O cluster é encerrado

Proteção contra término e instâncias spot

A proteção contra término do Amazon EMR não impede que uma instância spot do Amazon EC2 seja terminada quando o preço spot ultrapassa o preço spot máximo.

Configurar a proteção contra término ao iniciar um cluster

Você pode ativar ou desativar a proteção contra encerramento ao iniciar um cluster usando o console AWS CLI, o ou a API.

Para clusters de nó único, as configurações padrão de proteção contra encerramento são as seguintes:

  • Lançamento de um cluster pelo console do Amazon EMR — a Proteção de encerramento está desativada por padrão.

  • A inicialização de um cluster por meio da AWS CLI aws emr create-cluster —Termination Protection está desativada, a menos que --termination-protected seja especificada.

  • Lançamento de um cluster pelo RunJobFlowcomando da API do Amazon EMR — a Proteção de terminação é desativada, a menos que o valor TerminationProtected booleano esteja definido como. true

Para clusters de alta disponibilidade, as configurações padrão de proteção contra encerramento são as seguintes:

  • Lançamento de um cluster pelo console do Amazon EMR — A proteção de terminação é ativada por padrão.

  • A inicialização de um cluster por meio da AWS CLI aws emr create-cluster —Termination Protection está desativada, a menos que --termination-protected seja especificada.

  • Lançamento de um cluster pelo RunJobFlowcomando da API do Amazon EMR — a Proteção de terminação é desativada, a menos que o valor TerminationProtected booleano esteja definido como. true

Console
Para ativar ou desativar a proteção contra encerramento ao criar um cluster com o console
  1. Faça login no AWS Management Console e abra o console do Amazon EMR em https://console.aws.amazon.com/emr.

  2. Em EMR no EC2, no painel de navegação esquerdo, escolha Clusters e depois Criar cluster.

  3. Em Versão do EMR, escolha emr-6.6.0 ou posterior.

  4. Em Encerramento de cluster e substituição de nós, verifique se a opção Usar proteção de encerramento está pré-selecionada ou desmarque a seleção para desativá-la.

  5. Escolha qualquer outra opção que se aplique ao cluster.

  6. Para iniciar o cluster, escolha Criar cluster.

AWS CLI
Para ativar ou desativar a proteção contra encerramento ao criar um cluster usando o AWS CLI
  • Com o AWS CLI, você pode iniciar um cluster com a proteção de encerramento ativada com o create-cluster comando com o --termination-protected parâmetro. Por padrão, a proteção contra encerramento é desativada.

    O exemplo a seguir cria um cluster com proteção contra encerramento habilitada:

    nota

    Os caracteres de continuação de linha do Linux (\) são incluídos para facilitar a leitura. Eles podem ser removidos ou usados ​​em comandos do Linux. No Windows, remova-os ou substitua-os por um sinal de interpolação (^).

    aws emr create-cluster --name "TerminationProtectedCluster" --release-label emr-7.1.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --termination-protected

    Para obter mais informações sobre o uso dos comandos do Amazon EMR no AWS CLI, consulte. https://docs.aws.amazon.com/cli/latest/reference/emr

Configurar a proteção contra término para clusters em execução

Você pode configurar a proteção contra término para um cluster em execução usando o console ou a AWS CLI.

Console
Para ativar ou desativar a proteção contra encerramento de um cluster em execução com o console
  1. Faça login no AWS Management Console e abra o console do Amazon EMR em https://console.aws.amazon.com/emr.

  2. Em EMR no EC2 no painel de navegação esquerdo, escolha Clusters e selecione o cluster que você deseja atualizar.

  3. Na guia Propriedades na página de detalhes do cluster, localize Término do cluster e selecione Editar.

  4. Marque ou desmarque a caixa de seleção Usar proteção contra término para ativar ou desativar o atributo. Depois selecione Salvar alterações para confirmar.

AWS CLI
Para ativar ou desativar a proteção contra encerramento de um cluster em execução usando o AWS CLI
  • Para habilitar a proteção contra término em um cluster em execução usando a AWS CLI, digite o comando modify-cluster-attributes com o parâmetro --termination-protected. Para desabilitá-la, use o parâmetro --no-termination-protected.

    O exemplo a seguir habilita a proteção contra encerramento no cluster com o ID j-3KVTXXXXXX7UG:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --termination-protected

    O exemplo a seguir desabilita a proteção contra encerramento no mesmo cluster:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-termination-protected