Modo de alta disponibilidad

Cuando se crea un clúster de Dataproc, puedes poner el clúster en el modo de alta disponibilidad (AD) de Hadoop si especificas el número 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, Dataproc admite dos configuraciones principales:

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

Compara el modo de alta disponibilidad predeterminado y de Hadoop

  • Error de Compute Engine: en el caso poco frecuente de que ocurra un error inesperado en Compute Engine, las instancias de Dataproc experimentarán un reinicio de la máquina. La configuración principal única predeterminada de Dataproc está diseñada para recuperar y continuar el procesamiento de trabajos nuevos en esos casos, pero los trabajos en tránsito fallarán de manera inevitable y deberán reintentarse, y no será posible acceder a HDFS hasta que el NameNode único se recupere completamente en el reinicio. En el modo de AD, se configuran Alta disponibilidad de HDFS y Alta disponibilidad de YARN para permitir operaciones YARN y HDFS ininterrumpidas a pesar de cualquier falla/reinicio del nodo único.

  • 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 es el caso de todos los clústeres de Dataproc, 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 Dataproc de alta disponibilidad, el componente Zookeeper se instala automáticamente en los nodos principales 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 de Dataproc estándar:

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

En un clúster de Dataproc de alta disponibilidad:

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

Consulta la documentación sobre Alta disponibilidad de HDFS para obtener detalles adicionales sobre los componentes.

YARN

En un clúster estándar de Dataproc, cluster-name-m ejecuta ResourceManager.

En un clúster de Dataproc de alta disponibilidad, todas las instancias principales ejecutan ResourceManager.

Consulta la documentación sobre Alta disponibilidad de YARN para obtener detalles adicionales sobre los componentes.

Cómo crear un clúster de alta disponibilidad

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.

Console

Para crear un clúster de HA, selecciona Alta disponibilidad (3 instancias principales, N trabajadores) en la sección Tipo de clúster del panel Configurar clúster en la página Crear un clúster de Dataproc.