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)

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

No caso raro de uma falha inesperada do Compute Engine, as instâncias do Dataproc sofrerão uma reinicialização da máquina. 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.

No modo HA, a alta disponibilidade do HDFS e a do YARN são configuradas para permitir operações ininterruptas neles, mesmo com as falhas de node único/reinicializações.

O programa principal/do driver de todos os trabalhos executados ainda representará o único ponto potencial de falha, se a correção do job depender da execução com sucesso do programa. 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. Consulte Iniciar o Spark no YARN, para ver um exemplo de como programas de driver reinicializáveis podem ser executados em contêineres YARN para tolerância a falhas.

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.