Opções de redução vertical da escala para os clusters do Amazon EMR - Amazon EMR

Opções de redução vertical da escala para os clusters do Amazon EMR

nota

Não há mais suporte para as opções de comportamento de redução da escala verticalmente desde o Amazon EMR versão 5.10.0. Por causa da introdução do faturamento por segundo no Amazon EC2, o comportamento padrão da redução da escala verticalmente para clusters do Amazon EMR agora é terminar na conclusão da tarefa.

Com o Amazon EMR versões 5.1.0 a 5.9.1, há duas opções para o comportamento da redução da escala verticalmente: terminar no limite de instâncias por hora de acordo com o faturamento do Amazon EC2 ou terminar quando a tarefa for concluída. A partir do Amazon EMR versão 5.10.0, a configuração de término ao atingir o limite de hora de instância se torna defasada por causa da introdução do faturamento por segundo no 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 a AWS CLI para enviar um modify-instance-groups com EC2InstanceIdsToTerminate, 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 o término na conclusão da tarefa é especificado, o Amazon EMR colocas as tarefas em listas de negação e as remove dos nós antes de terminar as instâncias do Amazon EC2. Em ambos os comportamentos especificados, o Amazon EMR não termina as instâncias do Amazon EC2 em grupos de instâncias centrais se houver a possibilidade de danos ao HDFS.

Terminar na conclusão de tarefas

O Amazon EMR permite que você reduzir a escala verticalmente do cluster sem afetar a sua workload. O Amazon EMR desativa normalmente o YARN, o HDFS e os outros daemons nos nós centrais e nós de tarefa durante uma operação de redimensionamento para redução sem perder dados nem interromper trabalhos. O Amazon EMR reduzirá o tamanho de grupos de instâncias somente se o trabalho atribuído a eles tiver sido concluído e eles estiverem ociosos. Para desativar normalmente o YARN NodeManager, você pode ajustar manualmente o tempo em que um nó aguarda pela desativação.

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

Se ainda houver contêineres ou aplicativos do YARN em execução quando o tempo limite de desativação for ultrapassado, o nó será obrigatoriamente desativado e o YARN reprogramará 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

O Amazon EMR seleciona, de forma inteligente, as instâncias que não têm tarefas em execução relacionadas a etapas ou aplicações e as remove primeiro do cluster. Se todas as instâncias do cluster estiverem em uso, o Amazon EMR aguardará a conclusão das tarefas da 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. O Amazon EMR usa a nova configuração dinamicamente. Você pode definir isso como um número arbitrariamente grande para garantir que o Amazon EMR não termine nenhuma tarefa ao reduzir o tamanho do cluster.

Grupos de nós centrais

Em nós centrais, os daemons NodeManager do YARN e DataNode do HDFS devem ser desativados para que o grupo de instâncias seja reduzido. Para o YARN, a redução amigável garante que um nó marcado para desativação seja passado para o estado DECOMMISSIONED somente se não houver contêineres ou aplicações pendentes ou não concluídas. A desativação termina imediatamente se não há contêineres em execução no nó no início da desativação.

Para o HDFS, a redução amigável certifica-se de que a capacidade de destino do HDFS é grande o suficiente para comportar todos os blocos existentes. Se a capacidade alvo não for grande o suficiente, apenas uma parte das instâncias core serão desativadas, de forma que os nós restantes possam lidar com os dados atuais residentes no HDFS. Você deve garantir o aumento da capacidade no HDFS para permitir uma desativação mais extensa. 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, o Amazon EMR configura o valor com base no número de instâncias no cluster: 1 para clusters com uma a três instâncias, 2 para clusters com quatro a nove instâncias e 3 para clusters com mais de dez instâncias.

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

  2. O Amazon EMR não permitirá que os clusters escalem os nós principais abaixo de dfs.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 amigável não permite reduzir os nós centrais abaixo do fator de replicação do HDFS. Isso permite que o HDFS feche arquivos devido à insuficiência de réplicas. Para contornar esse limite, reduza o fator de replicação e reinicie o daemon NameNode.