Modo de alta disponibilidade

Ao criar um cluster do serviço gerenciado para Apache Spark, coloque-o no modo de alta disponibilidade (HA) do Hadoop especificando o número de instâncias mestre no cluster. O número de mestres só pode ser especificado no momento da criação do cluster.

No momento, o Managed Service para Apache Spark 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 do Compute Engine, as instâncias do Managed Service for Apache Spark serão reinicializadas. A configuração padrão de um único mestre do Managed Service for Apache Spark 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 alta disponibilidade do YARN são configuradas para permitir operações ininterruptas neles, mesmo com as falhas de nó único/reinicializações.

  • 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 API Jobs do serviço gerenciado para Apache Spark não são considerados de "alta disponibilidade" e ainda serão terminados em caso de falha do nó 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 serviço gerenciado para Apache Spark, todos 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.

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 serviço gerenciado para Apache Spark, 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 Managed Service for Apache Spark:

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

Em um cluster do Managed Service for Apache Spark de alta disponibilidade:

  • 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 de alta disponibilidade HDFS para ver mais detalhes dos componentes.

YARN

Em um cluster padrão do Managed Service for Apache Spark, cluster-name-m executa o ResourceManager.

Em um cluster de alta disponibilidade do Managed Service for Apache Spark, todos os mestres executam o ResourceManager.

Consulte a documentação de alta disponibilidade YARN para ver mais detalhes dos componentes.

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 Managed Service para Apache Spark.