Modo de alta disponibilidad

Cuando creas un clúster de Managed Service para Apache Spark, puedes colocarlo en el modo de alta disponibilidad (HA) de Hadoop especificando la cantidad de instancias principales en el clúster. La cantidad de instancias principales solo se puede especificar en el momento de la creación del clúster.

Actualmente, Managed Service para Apache Spark admite dos configuraciones de nodos principales:

  • 1 principal (predeterminada, no es AD)
  • 3 principales (Hadoop AD)

Comparación entre el modo predeterminado y el modo de alta disponibilidad de Hadoop

  • Falla de Compute Engine: En el caso poco frecuente de una falla inesperada de Compute Engine, las instancias de Managed Service para Apache Spark experimentarán un reinicio de la máquina. La configuración predeterminada de instancia principal única para Managed Service para Apache Spark está diseñada para recuperar y seguir procesando trabajo nuevo en esos casos, pero los trabajos en curso fallarán necesariamente y deberán reintentarse, y no se podrá acceder a HDFS hasta que la instancia de NameNode única se recupere por completo cuando se reinicie. En el modo de HA, la alta disponibilidad de HDFS y la alta disponibilidad de YARN se configuran para permitir operaciones de YARN y HDFS sin interrupciones, a pesar de cualquier falla o reinicio de un solo nodo.

  • Cancelación del controlador de trabajos: El programa principal o del controlador de cualquier trabajo que ejecutes sigue representando un punto único de fallo potencial si la precisión de tu trabajo depende de que el programa del controlador se ejecute con éxito. Los trabajos enviados a través de la API de trabajos de Dataproc no se consideran "alta disponibilidad" y aún se finalizarán si falla el nodo principal que ejecuta los programas del controlador del trabajo correspondiente. Para que los trabajos individuales sean resistentes a las fallas del nodo único mediante el uso del clúster de Cloud Dataproc de alta disponibilidad, el trabajo debe 1) ejecutarse sin un programa del controlador síncrono o 2) ejecutar el programa del controlador dentro de un contenedor YARN y escribirse para controlar los reinicios del programa del controlador. Consulta la documentación sobre cómo iniciar Spark en YARN para ver un ejemplo de la forma en la que los programas del controlador reiniciables se pueden ejecutar dentro de contenedores YARN para tolerancia a errores.

  • Falla zonal: Como ocurre con todos los clústeres de Managed Service para Apache Spark, todos los nodos de un clúster de alta disponibilidad residen en la misma zona. Si ocurre una falla que afecte a todos los nodos de una zona, la falla no se mitigará.

Nombres de instancias

La instancia principal predeterminada se llama cluster-name-m; las instancias principales de alta disponibilidad se llaman cluster-name-m-0, cluster-name-m-1 y cluster-name-m-2.

Apache ZooKeeper

En un clúster de Managed Service para Apache Spark con alta disponibilidad, el componente de Zookeeper se instala automáticamente en las instancias instancia principal del clúster. Todas las instancias principales participan en un clúster de ZooKeeper, que habilita la conmutación por error automática para otros servicios de Hadoop.

HDFS

En un clúster estándar de Managed Service para Apache Spark, haz lo siguiente:

  • cluster-name-m ejecuta:
    • NameNode
    • NameNode secundario

En un clúster de Managed Service para Apache Spark con alta disponibilidad, se aplica lo siguiente:

  • cluster-name-m-0 y cluster-name-m-1 ejecutan:
    • NameNode
    • ZKFailoverController
  • Todas las instancias principales que se ejecutan en JournalNode
  • No hay un NameNode secundario

Consulta la documentación de alta disponibilidad de HDFS para obtener más detalles sobre los componentes.

YARN

En un clúster estándar de Managed Service para Apache Spark, cluster-name-m ejecuta ResourceManager.

En un clúster de Managed Service para Apache Spark con alta disponibilidad, todos los nodos principales ejecutan ResourceManager.

Consulta la documentación de alta disponibilidad de YARN para obtener más detalles sobre los componentes.

Crea un clúster de alta disponibilidad

Console

  • Abre la página Crear clúster de Managed Service para Apache Spark.
  • En la sección Define la forma de tu clúster, selecciona Alta disponibilidad.
  • De forma predeterminada, la configuración del nodo controlador es la misma que la del trabajador principal. En Configuración adicional, puedes editar el Nodo controlador para desmarcar la casilla de verificación Nodo controlador predeterminado igual que el trabajador principal y, luego, especificar la configuración del nodo controlador.

Comando de gcloud

Para crear un clúster de alta disponibilidad con gcloud dataproc clusters create, ejecuta el siguiente comando:
gcloud dataproc clusters create cluster-name \
    --region=region \
    --num-masters=3 \
    ... other args

API de REST

Para crear un clúster de alta disponibilidad, usa la API clusters.create y configura masterConfig.numInstances en 3.