Redução da escala verticalmente do cluster - 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á.

Redução da escala verticalmente do cluster

nota

As opções de comportamento de redução de escala não são mais suportadas desde a EMR versão 5.10.0 da Amazon. Devido à introdução do faturamento por segundo na AmazonEC2, o comportamento padrão de redução de escala para EMR clusters da Amazon agora é encerrado na conclusão da tarefa.

Com as EMR versões 5.1.0 a 5.9.1 da Amazon, há duas opções para o comportamento de redução: encerrar no limite da hora da instância para o faturamento da Amazon ou encerrar na conclusão da tarefa. EC2 A partir da EMR versão 5.10.0 da Amazon, a configuração para rescisão no limite da hora da instância está obsoleta devido à introdução do faturamento por segundo na Amazon. EC2 Não recomendamos especificar o encerramento no limite de tempo de execução da instância em que a opção está disponível.

Atenção

Se você usar o AWS CLI para emitir um modify-instance-groups comEC2InstanceIdsToTerminate, essas instâncias serão encerradas imediatamente, sem considerar essas configurações e independentemente do status dos aplicativos em execução nelas. O encerramento de uma instância dessa forma tem o risco de perda de dados e de comportamento imprevisível do cluster.

Quando a conclusão da tarefa é especificada, a Amazon EMR Deny lista e drena as tarefas dos nós antes de encerrar as instâncias da Amazon. EC2 Com nenhum dos comportamentos especificados, EMR a Amazon não encerra EC2 instâncias da Amazon em grupos de instâncias principais se isso puder levar à HDFS corrupção.

Terminar na conclusão de tarefas

A Amazon EMR permite que você reduza seu cluster sem afetar sua carga de trabalho. A Amazon EMR YARN descomissiona normalmente e outros daemons nos nós principais e de tarefas durante uma operação de redimensionamento sem perder dados ou interromper trabalhos. HDFS A Amazon EMR só reduz o tamanho do grupo de instâncias se o trabalho atribuído aos grupos tiver sido concluído e eles estiverem ociosos. Para o YARN NodeManager Graceful Decommission, você pode ajustar manualmente o tempo que um nó espera pelo descomissionamento.

Este tempo é definido usando uma propriedade na a classificação de configuração YARN-site. Usando a EMR versão 5.12.0 e superior da Amazon, especifique a YARN.resourcemanager.nodemanager-graceful-decommission-timeout-secs propriedade. Usando EMR versões anteriores da Amazon, especifique a YARN.resourcemanager.decommissioning.timeout propriedade.

Se ainda houver contêineres ou YARN aplicativos em execução quando o tempo limite de descomissionamento passar, o nó será forçado a ser descomissionado e YARN reprograma os contêineres afetados em outros nós. O valor padrão é de 3.600 segundos (uma hora). Você pode definir esse tempo limite com um valor arbitrariamente alto para forçar a redução amigável a esperar mais tempo. Para obter mais informações, consulte Graceful Decommission of YARN nodes na documentação do Apache Hadoop.

Grupos de nós de tarefa

A Amazon seleciona de EMR forma inteligente instâncias que não têm tarefas executadas em nenhuma etapa ou aplicativo e primeiro remove essas instâncias de um cluster. Se todas as instâncias do cluster estiverem em uso, a Amazon EMR espera que as tarefas sejam concluídas em uma instância antes de removê-la do cluster. O tempo de espera padrão é 1 hora. Esse valor pode ser alterado com a configuração YARN.resourcemanager.decommissioning.timeout. A Amazon usa EMR dinamicamente a nova configuração. Você pode definir isso como um número arbitrariamente grande para garantir que a Amazon EMR não encerre nenhuma tarefa enquanto reduz o tamanho do cluster.

Grupos de nós centrais

Nos nós principais, ambos YARN NodeManager e os HDFS DataNode daemons devem ser desativados para que o grupo de instâncias seja reduzido. PoisYARN, a redução gradual garante que um nó marcado para descomissionamento só seja transferido para o DECOMMISSIONED estado se não houver contêineres ou aplicativos pendentes ou incompletos. A desativação termina imediatamente se não há contêineres em execução no nó no início da desativação.

PoisHDFS, uma redução suave garante que a capacidade alvo de HDFS seja grande o suficiente para caber em todos os blocos existentes. Se a capacidade de destino não for grande o suficiente, somente uma quantidade parcial de instâncias principais será desativada para que os nós restantes possam lidar com os dados atuais que residem. HDFS Você deve garantir HDFS capacidade adicional para permitir mais descomissionamento. Tente também minimizar a E/S de gravação antes de tentar reduzir os grupos de instâncias. O excesso de E/S de gravação poderá atrasar a conclusão da operação de redimensionamento.

Outro limite é o fator de replicação padrão dfs.replication no /etc/hadoop/conf/hdfs-site. Ao criar um cluster, a Amazon EMR configura o valor com base no número de instâncias no cluster: 1 com 1 a 3 instâncias, 2 para clusters com 4 a 9 instâncias e 3 para clusters com mais de 10 instâncias.

Atenção
  1. dfs.replicationDefinir como 1 em clusters com menos de quatro nós pode levar à perda de HDFS dados se um único nó ficar inativo. É recomendável usar um cluster com pelo menos quatro nós centrais para workloads de produção.

  2. A Amazon não EMR permitirá que os clusters escalem os nós principais abaixodfs.replication. Por exemplo, se dfs.replication = 2, o número mínimo de nós central será 2.

  3. Ao usar o Ajuste de Escala Gerenciado, o Auto Scaling ou optar por redimensionar manualmente o cluster, é recomendável definir dfs.replication como 2 ou mais.

A redução suave não permite que você reduza os nós principais abaixo do fator de HDFS replicação. Isso permite fechar arquivos devido HDFS à insuficiência de réplicas. Para contornar esse limite, diminua o fator de replicação e reinicie o daemon. NameNode

Configurar o comportamento de redução de EMR escala da Amazon

nota

A opção de comportamento de redução de encerramento na hora da instância não é mais compatível com a EMR versão 5.10.0 e superior da Amazon. As seguintes opções de comportamento de redução de escala só aparecem no EMR console da Amazon nas versões 5.1.0 a 5.9.1.

Você pode usar o AWS Management Console AWS CLI, o ou o Amazon EMR API para configurar o comportamento de redução ao criar um cluster.

Console
Para configurar o comportamento de redução com o console
  1. Faça login no AWS Management Console e abra o EMR console da Amazon em https://console.aws.amazon.com/emr.

  2. EC2Em EMRAtivado, no painel de navegação esquerdo, escolha Clusters e, em seguida, escolha Criar cluster.

  3. Na seção Opções de escalabilidade e provisionamento de clusters, escolha Usar escalabilidade automática personalizada. Em Políticas personalizadas de escalabilidade automática, escolha o botão de ação adicional para adicionar escala nas políticas. Recomendamos que você adicione as políticas Scale In e Scale Out. Adicionar apenas um conjunto de políticas significa que a Amazon EMR executará apenas o escalonamento unidirecional e você precisará executar manualmente as outras ações.

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

  5. Para iniciar o cluster, escolha Criar cluster.

AWS CLI
Para configurar o comportamento de redução de escala com o AWS CLI
  • Use a opção --scale-down-behavior para especificar TERMINATE_AT_INSTANCE_HOUR ou TERMINATE_AT_TASK_COMPLETION.