Se a carga do cluster permanecer baixa por um longo período e muitos recursos estiverem ociosos, considere reduzir o grupo de nós Core ou Task para evitar desperdício. Em grupos de nós Task com pagamento conforme o uso, realize essa operação diretamente no console. Para outros tipos — incluindo grupos de nós Core com pagamento conforme o uso, grupos de nós Task por assinatura e grupos de nós Core por assinatura — siga o procedimento descrito neste tópico.
Limites
Se o número de nós Core no cluster for igual ao fator de replicação do HDFS, não reduza os nós Core para evitar perda de dados.
Em clusters Hadoop legados de alta disponibilidade (HA) com dois nós Master, não descomissione o nó emr-worker-1 (nesse tipo de cluster, o ZooKeeper executa no work-1).
Observações importantes
Todas as operações descritas neste tópico são irreversíveis. Após iniciar o descomissionamento, não é possível restaurar o estado original.
Este tópico apresenta práticas recomendadas. Avalie cuidadosamente as condições reais do cluster antes de prosseguir para evitar falhas no agendamento de jobs e riscos à segurança dos dados.
Como escolher os nós para descomissionamento
A redução de um grupo de nós ocorre mediante o descomissionamento de nós dentro desse grupo. Escolha os nós com base na carga de serviços do cluster. Este tópico apresenta dois métodos para verificar o uso de recursos e identificar candidatos ao descomissionamento.
Método 1: Monitoring and Diagnostics no console EMR
Na página Metric Monitoring, verifique a métrica AvailableVCores no painel YARN-Queues. Se AvailableVCores permanecer alto por muito tempo, a fila possui muitos vCores ociosos; nesse caso, considere reduzir o grupo de nós Core ou Task.
Ainda na página Metric Monitoring, analise a métrica AvailableGB no painel YARN-NodeManagers. Quando o AvailableGB de um nó se mantém elevado por um longo período, isso indica memória disponível em abundância; portanto, considere liberar esse nó.
Combine outras métricas aos requisitos do seu negócio como critérios de decisão.
Método 2: YARN web UI
-
Analise o uso de recursos das filas. Se as filas utilizarem consistentemente pouca capacidade, considere reduzir o grupo de nós Core ou Task.
Na página Application Queues do YARN ResourceManager, visualize a memória e os vCores alocados e utilizados por cada partição (como DEFAULT_PARTITION ou batch). Utilize métricas como Capacity, Used e Max Capacity na legenda para determinar se há recursos ociosos nas filas.
Na página Nodes, ordene por Nodes Address para identificar rapidamente os nós com maior quantidade de memória disponível. Considere liberar esses nós.
Para clusters Hadoop legados, tome precauções especiais nos seguintes casos:
Em clusters sem HA, não descomissione os nós emr-worker-1 ou emr-worker-2.
Em clusters HA com apenas dois nós Master, não descomissione o nó emr-worker-1.
Etapa 1: Verificar serviços nos nós a serem descomissionados
Antes de descomissionar nós para reduzir um grupo Core ou Task, descomissione primeiro os serviços de componentes relevantes nesses nós. Em seguida, libere os recursos do nó. Visualize os componentes implantados na página Nodes do console.
Na página Node management, expanda o grupo de nós desejado, localize o nó alvo e clique em ícone de contagem de componentes (por exemplo, 12 components) no lado direito da linha do nó. Uma camada pop-up exibirá todos os componentes implantados e seus status de execução.
Etapa 2: Descomissionar serviços de componentes do nó
Se o nó planejado para descomissionamento executar algum dos serviços abaixo, descomissione esses serviços antes de liberar o nó. Caso contrário, há risco de falhas no agendamento de jobs e problemas de segurança de dados.
Descomissionar YARN NodeManager
-
Acesse a página de status do serviço YARN.
Faça login no console E-MapReduce.
Na barra de menus superior, selecione a região e o grupo de recursos conforme necessário.
Na página EMR on ECS, clique em Services na coluna Actions do cluster desejado.
Na página Services, clique em Status na seção do serviço YARN.
-
Descomissione o NodeManager no nó alvo.
Em Components, clique em na coluna Actions referente ao NodeManager.
Na caixa de diálogo, selecione , insira um Execution Reason e clique em OK.
Na caixa de diálogo de confirmação, clique em OK.
Clique em Operation History no canto superior direito para acompanhar o progresso.
Descomissionar HDFS DataNode
Conecte-se a um nó Master via SSH. Para mais detalhes, consulte Conectar-se a um cluster.
-
Mude para o usuário hdfs e verifique o número de NameNodes ativos.
sudo su - hdfs hdfs haadmin -getAllServiceState -
Conecte-se via SSH a cada host NameNode e edite o arquivo dfs.exclude para adicionar o hostname do nó que deseja descomissionar. Adicione apenas um nó por vez.
-
Clusters Hadoop legados
touch /etc/ecm/hadoop-conf/dfs.exclude vim /etc/ecm/hadoop-conf/dfs.excludeNo vim, pressione
opara iniciar uma nova linha e insira o hostname do DataNode a ser descomissionado.emr-worker-3.cluster-xxxxx emr-worker-4.cluster-xxxxx -
Clusters Hadoop não legados
touch /etc/taihao-apps/hdfs-conf/dfs.exclude vim /etc/taihao-apps/hdfs-conf/dfs.excludeNo vim, pressione
opara iniciar uma nova linha e insira o hostname do DataNode a ser descomissionado.core-1-3.c-0894dxxxxxxxxx core-1-4.c-0894dxxxxxxxxx
-
-
Em qualquer host NameNode, mude para o usuário hdfs e execute o comando de atualização. O HDFS iniciará automaticamente o descomissionamento.
sudo su - hdfs hdfs dfsadmin -refreshNodes -
Confirme o resultado do descomissionamento.
Execute o comando abaixo para verificar se o descomissionamento foi concluído.
hadoop dfsadmin -reportQuando o Status do nó especificado aparecer como Decommissioned, significa que seus dados foram migrados para outros nós e o descomissionamento está completo.
Descomissionar StarRocks
Conecte-se ao cluster utilizando um cliente. Para mais detalhes, consulte Início rápido.
-
Execute o seguinte comando para descomissionar um BE usando o método
DECOMMISSION.ALTER SYSTEM DECOMMISSION backend "be_ip:be_heartbeat_service_port";Substitua os parâmetros abaixo conforme o seu cluster:
be_ip: Localize o endereço IP interno do BE a ser reduzido na página Nodes.be_heartbeat_service_port: O valor padrão é 9050. Verifique-o usando o comandoshow backends.
Se o descomissionamento estiver lento, force-o utilizando o método
DROP.ImportanteAo utilizar o método
DROP, certifique-se de que o sistema mantém dados triplicados.ALTER SYSTEM DROP backend "be_ip:be_heartbeat_service_port"; -
Execute o comando a seguir para monitorar o status do BE.
show backends;MySQL [(none)]> show backends; +----------+-----------------+------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+------------------------+-----------+------------------+---------------+---------------+---------+---------+----------+--------+---------------+----------------------------------------------------+-------------------+-------------+----------+ | BackendId | Cluster | IP | HeartbeatPort | BePort | HttpPort | BrpcPort | LastStartTime | LastHeartbeat | Alive | SystemDecommissioned | ClusterDecommissioned | TabletNum | DataUsedCapacity | AvailCapacity | TotalCapacity | UsedPct | MaxDiskUsedPct | ErrMsg | Version | Status | DataTotalCapacity | DataUsedPct | CpuCores | +----------+-----------------+------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+------------------------+-----------+------------------+---------------+---------------+---------+---------+----------+--------+---------------+----------------------------------------------------+-------------------+-------------+----------+ | 10049 | default_cluster | 192.16xxx | 9050 | 9060 | 18040 | 8060 | 2022-11-29 15:47:28 | 2022-11-29 16:09:48 | true | true | false | 0 | .000 | 312.400 GB | 312.978 GB | 0.18 % | 0.19 % | | 2.3.2-dbc89ae | {"xxxcessReportTabletsTime":"2022-11-29 16:09:28"} | 312.400 GB | 0.00 % | 4 | | 10002 | default_cluster | 192.16xxx | 9050 | 9060 | 18040 | 8060 | 2022-11-29 15:29:07 | 2022-11-29 16:09:48 | true | false | false | 10 | .000 | 312.399 GB | 312.978 GB | 0.19 % | 0.19 % | | 2.3.2-dbc89ae | {"xxxcessReportTabletsTime":"2022-11-29 16:09:08"} | 312.399 GB | 0.00 % | 4 | | 10003 | default_cluster | 192.16xxx | 9050 | 9060 | 18040 | 8060 | 2022-11-29 15:29:07 | 2022-11-29 16:09:48 | true | false | false | 10 | .000 | 312.399 GB | 312.978 GB | 0.19 % | 0.19 % | | 2.3.2-dbc89ae | {"xxxcessReportTabletsTime":"2022-11-29 16:09:07"} | 312.399 GB | 0.00 % | 4 | | 10004 | default_cluster | 192.16xxx | 9050 | 9060 | 18040 | 8060 | 2022-11-29 15:29:07 | 2022-11-29 16:09:48 | true | false | false | 10 | .000 | 312.399 GB | 312.978 GB | 0.19 % | 0.19 % | | 2.3.2-dbc89ae | {"xxxcessReportTabletsTime":"2022-11-29 16:09:08"} | 312.399 GB | 0.00 % | 4 | +----------+-----------------+------------+---------------+--------+----------+----------+---------------------+---------------------+-------+----------------------+------------------------+-----------+------------------+---------------+---------------+---------+---------+----------+--------+---------------+----------------------------------------------------+-------------------+-------------+----------+ 4 rows in set (0.01 sec)Um nó com SystemDecommissioned definido como true está em processo de descomissionamento. Quando TabletNum atingir 0, o sistema limpará os metadados.
Se o nó BE não aparecer mais nos resultados, o descomissionamento foi bem-sucedido.
Descomissionar HBase HRegionServer
-
Acesse a página de status do serviço HBase.
Faça login no console E-MapReduce.
Na barra de menus superior, selecione a região e o grupo de recursos conforme necessário.
Na página EMR on ECS, clique em Services na coluna Actions do cluster desejado.
Na página Services, clique em Status na seção do serviço HBase.
-
Descomissione o HRegionServer no nó alvo.
Em Components, clique em STOP na coluna Actions referente ao HRegionServer.
Na caixa de diálogo, selecione , insira um Execution Reason e clique em OK.
Na caixa de diálogo de confirmação, clique em OK.
Clique em Operation history no canto superior direito para acompanhar o progresso.
Descomissionar HBASE-HDFS DataNode
Conecte-se a um nó Master via SSH. Para mais detalhes, consulte Conectar-se a um cluster.
-
Execute os comandos abaixo para mudar para o usuário hdfs e definir variáveis de ambiente.
sudo su - hdfs export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode -
Execute o seguinte comando para visualizar as informações atuais do NameNode.
hdfs dfsadmin -report -
Conecte-se via SSH a cada host NameNode e edite o arquivo dfs.exclude para adicionar o hostname do nó que deseja descomissionar. Adicione apenas um nó por vez.
touch /etc/taihao-apps/hdfs-conf/dfs.exclude vim /etc/taihao-apps/hdfs-conf/dfs.excludeNo vim, pressione
opara iniciar uma nova linha e insira o hostname do DataNode a ser descomissionado.core-1-3.c-0894dxxxxxxxxx core-1-4.c-0894dxxxxxxxxx -
Em qualquer host NameNode, mude para o usuário hdfs e execute o comando de atualização. O HDFS iniciará automaticamente o descomissionamento.
sudo su - hdfs export HADOOP_CONF_DIR=/etc/taihao-apps/hdfs-conf/namenode hdfs dfsadmin -refreshNodes -
Confirme o resultado do descomissionamento.Descomissionar SmartData JindoStorageService (clusters Hadoop legados)
Execute o comando abaixo para verificar se o descomissionamento foi concluído.
hadoop dfsadmin -reportQuando o Status do nó especificado aparecer como Decommissioned, significa que seus dados foram migrados para outros nós e o descomissionamento está completo.
-
Acesse a página de status do serviço SmartData.
Faça login no console E-MapReduce.
Na barra de menus superior, selecione a região e o grupo de recursos conforme necessário.
Na página EMR on ECS, clique em Services na coluna Actions do cluster desejado.
Na página Services, clique em Status na seção do serviço SmartData.
-
Descomissione o JindoStorageService no nó alvo.
Em Components, clique em na coluna Actions referente ao JindoStorageService.
Na caixa de diálogo, selecione , insira um Execution Reason e clique em OK.
Na caixa de diálogo de confirmação, clique em OK.
Clique em Operation History no canto superior direito para acompanhar o progresso.
-
Descomissionamento gracioso do Presto
Descomissionamento do Kudu
Etapa 3: Liberar nós descomissionados
Faça login no console ECS para gerenciar os nós do cluster. Se você for um usuário do Resource Access Management (RAM), precisará de permissões do ECS. Recomendamos conceder a política AliyunECSFullAccess.
-
Acesse a página de gerenciamento de nós.
Faça login no console E-MapReduce.
Na barra de menus superior, selecione a região e o grupo de recursos conforme necessário.
Na página EMR on ECS, clique em Nodes na coluna Actions do cluster desejado.
-
Na página Nodes, clique em ID ECS do nó que deseja liberar.
Você será redirecionado para o console ECS.
Libere a instância no console ECS. Para mais detalhes, consulte Liberar instâncias.
Referências
Para reduzir grupos de nós Task com pagamento conforme o uso e instâncias spot, consulte Reduzir um cluster.
Se o cluster precisar de mais recursos computacionais, aumente o grupo de nós Core ou Task. Para mais detalhes, consulte Aumentar um cluster.
Para ajustar automaticamente os recursos computacionais do cluster conforme a demanda do negócio, configure regras de Auto Scaling gerenciadas ou personalizadas para os grupos de nós. Para mais detalhes, consulte Auto Scaling.