Substituição de nós não íntegros pelo Amazon EMR - Amazon EMR

Substituição de nós não íntegros pelo Amazon EMR

O Amazon EMR usa periodicamente o serviço de verificação de integridade NodeManager no Apache Hadoop para monitorar os status dos nós centrais nos clusters do Amazon EMR no Amazon EC2. Se um nó não estiver funcionando de maneira ideal, ele será marcado como não íntegro e o verificador de integridade reportará esse nó ao controlador Amazon EMR. O controlador do Amazon EMR adiciona o nó a uma lista de bloqueios, impedindo que o nó receba novas aplicações do YARN até que o status do nó melhore.

nota

Um motivo comum para um nó não estar íntegro é a falta de espaço em disco. Para obter mais informações sobre quando um nó central está quase sem espaço em disco, o seguinte artigo do Centro de conhecimento re:Post ajuda: Por que o nó central do meu cluster do Amazon EMR está ficando sem espaço em disco?

nota

O Hadoop fornece a capacidade de executar verificações personalizadas de integridade do nó. Isso é explicado com mais detalhes na documentação do Apache Hadoop no NodeManager.

Você pode escolher se o Amazon EMR deve encerrar os nós não íntegros ou mantê-los no cluster. Se você desativar a substituição de nós não íntegros, eles permanecerão na lista de rejeição e continuarão a ser considerados na capacidade do cluster. Você ainda pode se conectar à instância central do Amazon EC2 para configuração e recuperação a fim de redimensionar o cluster se quiser adicionar capacidade. Para obter mais informações sobre como a substituição e o encerramento de nós funcionam, consulte Usar proteção contra encerramento.

Se a substituição de nós com falha estiver ativada, o Amazon EMR encerrará um nó central com falha e provisionará uma nova instância, com base no número de instâncias no grupo de instâncias ou na capacidade alvo para frotas de instâncias. Se qualquer nó central se tornar não íntegro por mais de 45 minutos, o Amazon EMR o substituirá. Se a desativação gradual de um nó não for concluída em uma hora, o nó será encerrado à força, a menos que isso faça com que o cluster fique abaixo do fator de replicação ou das restrições de capacidade do HDFS.

Importante

Observe que o tempo necessário até que um nó seja descomissionado ou encerrado normalmente pode estar sujeito a alterações.

Embora a substituição inadequada de nós reduza significativamente a possibilidade de perda de dados, ela não elimina totalmente os riscos. Os dados do HDFS sejam perdidos permanentemente durante a substituição normal de uma instância central não íntegra. Recomendamos sempre fazer backup dos dados.

Para obter mais informações sobre como identificar e recuperar os nós não íntegros, consulte Resource errors. Além disso, para obter mais práticas recomendadas que você pode seguir para manter a integridade de um cluster, consulte a documentação a seguir sobre o erro de recurso O cluster do Amazon EMR termina com NO_SLAVE_LEFT e os nós centrais FAILED_BY_MASTER.

O Amazon EMR publica o Amazon CloudWatch Events para substituição de nós não íntegros, para que você possa acompanhar o que está acontecendo com suas instâncias centrais não íntegras. Para obter mais informações, consulte unhealthy node replacement events.

Configurações padrão de substituição de nós e proteção contra encerramento

A substituição de nós não íntegros está disponível em todas as versões do Amazon EMR, mas as configurações padrão dependem do rótulo de lançamento que você escolher. Você pode alterar qualquer uma dessas definições configurando a substituição de nós não íntegros ao criar um cluster ou acessando a configuração do cluster a qualquer momento.

Caso esteja criando um cluster de nó único ou de alta disponibilidade que esteja executando a versão 7.0 ou inferior do Amazon EMR, a configuração padrão de substituição de nós não íntegros depende da proteção contra encerramento:

  • Habilitar a proteção contra encerramento desabilita a substituição de nós não íntegros.

  • Desabilitar a proteção contra encerramento habilita a substituição de nós não íntegros.

Como configurar a substituição de nós não íntegros ao iniciar um cluster

Você pode habilitar ou desabilitar a substituição de nós não íntegros ao iniciar um cluster usando o console, a AWS CLI ou a API.

A configuração padrão de substituição de nós não íntegros depende de como você inicia o cluster:

  • Console do Amazon EMR: a substituição de nós não íntegros é habilitada por padrão.

  • AWS CLI aws emr create-cluster: a substituição de nós não íntegros é habilitada por padrão, a menos que você especifique --no-unhealthy-node-replacement.

  • Comando da API RunJobFlow do Amazon EMR: a substituição de nós não íntegros é habilitada por padrão, a menos que você defina o valor booleano UnhealthyNodeReplacement como True ou False.

Console
Como ativar ou desativar a substituição de nós não íntegros ao criar um cluster usando o console
  1. Faça login no Console de gerenciamento da AWS 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 de lançamento do EMR, escolha o rótulo de lançamento do Amazon EMR que deseja.

  4. Em Encerramento de cluster e substituição de nó, verifique se a opção Substituição de nó não íntegro (recomendada) 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 substituição de nós não íntegros ao criar um cluster usando a AWS CLI
  • Com a AWS CLI, você pode iniciar um cluster com substituição de nó não íntegro habilitada usando o comando create-cluster com o parâmetro --unhealthy-node-replacement . A substituição de nós não íntegros está ativada por padrão.

    O seguinte exemplo cria um cluster com a substituição de nós não íntegros 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 "SampleCluster" --release-label emr-7.10.0 \ --applications Name=Hadoop Name=Hive Name=Pig \ --use-default-roles --ec2-attributes KeyName=myKey --instance-type m5.xlarge \ --instance-count 3 --unhealthy-node-replacement

    Para obter mais informações sobre o uso de comandos do Amazon EMR na AWS CLI, consulte Amazon EMR AWS CLI commands.

Como configurar a substituição de nós não íntegros em um cluster em execução

Você pode ativar ou desativar a substituição de nós não íntegros de um cluster em execução usando o console, a AWS CLI ou a API.

Console
Para ativar ou desativar a substituição de nós não íntegros de um cluster em execução usando o console
  1. Faça login no Console de gerenciamento da AWS 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 Encerramento do cluster e substituição do nó e selecione Editar.

  4. Marque ou desmarque a caixa de seleção de substituição de nós não íntegros para ativar ou desativar o recurso. Depois selecione Salvar alterações para confirmar.

AWS CLI
Para ativar ou desativar a substituição de nós não íntegros de um cluster em execução usando a AWS CLI
  • Para ativar a substituição de nós não íntegros de um cluster em execução com a AWS CLI, use o comando modify-cluster-attributes com o parâmetro --unhealthy-node-replacement. Para desabilitá-la, use o parâmetro --no-unhealthy-node-replacement.

    O seguinte exemplo ativa a substituição de nós não íntegros no cluster com o ID j-3KVTXXXXXX7UG:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --unhealthy-node-replacement

    O seguinte exemplo desativa a substituição de nós não íntegros no mesmo cluster:

    aws emr modify-cluster-attributes --cluster-id j-3KVTXXXXXX7UG --no-unhealthy-node-replacement