Modo de alta disponibilidade

Ao criar um cluster do Dataproc, coloque-o no modo Alta Disponibilidade (HA, na sigla em inglês) do Hadoop, especificando o número de instâncias mestre contidas nele. O número de mestres só pode ser especificado no momento da criação do cluster.

Atualmente, o Dataproc aceita duas configurações de mestre:

  • 1 mestre (padrão, não HA)
  • 3 mestres (HA do Hadoop)

Comparação entre os modos padrão e de alta disponibilidade do Hadoop

  • Falha do Compute Engine: no caso raro de uma falha inesperada no Compute Engine, vai ocorrer uma reinicialização de máquina das instâncias do Dataproc. A configuração padrão de um único mestre do Dataproc foi projetada para recuperar e continuar processando novos trabalhos nesses casos, mas necessariamente ocorrerá falha dos trabalhos em andamento e o HDFS ficará inacessível até que o único NameNode se recupere completamente ao reinicializar. Em Modo HA, a Alta disponibilidade HDFS e Alta disponibilidade YARN são configuradas para permitir operações YARN e HDFS ininterruptas, independentemente de qualquer falha/reinicialização de nó único.

  • Encerramento do driver do job: o programa principal/de driver de quaisquer jobs executados ainda representará um ponto único de falha, se a correção do job depender da execução bem-sucedida do programa de driver. Os jobs enviados pela Dataproc Jobs API não são considerados de "alta disponibilidade" e ainda serão terminados em caso de falha do node mestre que executa os programas correspondentes do driver do job. Para que os jobs individuais sejam resistentes a falhas de node único usando um cluster de alta disponibilidade do Cloud Dataproc, eles precisam: 1) ser executados sem um programa de driver síncrono ou 2) precisam executar o próprio programa de driver em um contêiner YARN e serem gravados para processar as reinicializações do programa de driver. Veja em Iniciar o Spark no YARN um exemplo de como os programas de driver reinicializáveis podem ser executados em contêineres YARN para tolerância a falhas.

  • Falha zonal: como acontece com todos os clusters do Dataproc, os nós em um cluster de alta disponibilidade ficam na mesma zona. Se houver uma falha que afete todos os nós em uma zona, ela não será atenuada.

  • IU do ResourceManager do Yarn: a IU do ResourceManager do Yarn não tem suporte com clusters de alta disponibilidade do Dataproc.

Nomes de instâncias

O mestre padrão é chamado cluster-name-m. Os mestres de alta disponibilidade são chamados cluster-name-m-0, cluster-name-m-1, cluster-name-m-2.

Apache ZooKeeper

Em um cluster HA do Dataproc, o componente do Zookeeper é instalado automaticamente nos nós mestres do cluster. Todos os mestres participam de um cluster do ZooKeeper, que ativa o failover automático para outros serviços do Hadoop.

HDFS

Em um cluster padrão do Dataproc:

  • cluster-name-m executa:
    • NameNode
    • NameNode secundário

Em um cluster de alta disponibilidade do Dataproc:

  • cluster-name-m-0 e cluster-name-m-1 executam:
    • NameNode
    • ZKFailoverController
  • Todos os mestres executam o JournalNode
  • Não há NameNode secundário

Consulte a documentação sobre alta disponibilidade do HDFS para ver detalhes adicionais dos componentes.

YARN

Em um cluster padrão do Dataproc, cluster-name-m executa ResourceManager.

Em um cluster de alta disponibilidade do Dataproc, todos os mestres executam o ResourceManager.

Consulte a documentação sobre alta disponibilidade do YARN para ver detalhes adicionais dos componentes.

Como criar um cluster de alta disponibilidade

Comando gcloud

Para criar um cluster de alta disponibilidade com gcloud dataproc clusters create, execute o seguinte comando:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

API REST

Para criar um cluster de alta disponibilidade, use a API clusters.create, definindo masterConfig.numInstances como 3.

Console

Para criar um cluster de alta disponibilidade, selecione "Alta disponibilidade" (três mestres, N workers) na seção "Tipo de cluster" do painel "Configurar cluster" na página Criar um cluster do Dataproc.