Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2023-05-19 GMT+08:00

Solução HA do HDFS

Plano de fundo de HA do HDFS

Em versões anteriores ao Hadoop 2.0.0, o SPOF ocorre no cluster HDFS. Cada cluster tem apenas um NameNode. Se o host onde o NameNode está localizado estiver com defeito, o cluster do HDFS não poderá ser usado a menos que o NameNode seja reiniciado ou iniciado em outro host. Isso afeta a disponibilidade geral do HDFS nos seguintes aspectos:

  1. No caso de um evento não planejado, como detalhamento do host, o cluster ficará indisponível até que o NameNode seja reiniciado.
  2. Tarefas de manutenção planejadas, como atualização de software e hardware, farão com que o cluster pare de funcionar.

Para resolver os problemas anteriores, a solução HA do HDFS permite um backup de intercambiar do NameNode para NameNodes em um cluster em modo automático ou manual (configurável). Quando uma máquina falha (devido a uma falha de hardware), o NameNode ativo/em espera muda automaticamente em um curto espaço de tempo. Quando o NameNode ativo precisa ser mantido, o administrador do cluster do MRS pode executar manualmente uma alternância de NameNode ativo/em espera para garantir a disponibilidade do cluster durante a manutenção.

Para obter detalhes sobre failover automático do HDFS, consulte

http://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html#Automatic_Failover

Implementação de HA do HDFS

Figura 1 Implementação típica de HA

Em um cluster HA típico (como mostrado em Figura 1), dois NameNodes precisam ser configurados em dois servidores independentes, respectivamente. Em qualquer momento, um NameNode está no estado ativo e o outro NameNode está no estado de espera. O NameNode ativo é responsável por todas as operações do cliente no cluster, enquanto o NameNode em espera mantém a sincronização com o nó ativo para fornecer alternância rápida, se necessário.

Para manter os dados sincronizados uns com os outros, ambos os nós se comunicam com um grupo de JournalNodes. Quando o nó ativo modifica os metadados de qualquer sistema de arquivos, ele armazena o log de modificação na maioria desses JournalNodes. Por exemplo, se houver três JournalNodes, o log será salvo em dois deles pelo menos. O nó em espera monitora as alterações de JournalNodes e sincroniza as alterações do nó ativo. Com base no registro de modificação, o nó em espera aplica as alterações aos metadados do sistema de arquivos local. Uma vez que ocorre uma alternância, o nó em espera pode garantir que seu status seja o mesmo do nó ativo. Isso garante que os metadados do sistema de arquivos sejam sincronizados entre os nós ativo e em espera se a alternância for incorrida pela falha do nó ativo.

Para garantir uma alternância rápida, o nó em espera precisa ter as informações de bloco mais recentes. Portanto, os DataNodes enviam informações de bloqueio e mensagens de pulsação para dois NameNodes ao mesmo tempo.

É vital para um cluster HA que somente um dos NameNodes esteja ativo a qualquer momento. Caso contrário, o estado do namespace se dividiria em duas partes, arriscando a perda de dados ou outros resultados incorretos. Para evitar o chamado "cenário de dupla personalidade", o JournalNodes só permitirá que um único NameNode grave dados por vez. Durante a alternância, o NameNode que se tornará ativo assumirá o papel de gravar dados em JournalNodes. Isso efetivamente impede que o outro NameNodes esteja no estado ativo, permitindo que o novo nó ativo prossiga a alternância com segurança.

Para obter mais informações sobre a solução HA do HDFS, visite o seguinte site:

http://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithQJM.html