Al crear un clúster de Dataproc, puedes ponerlo en modo de alta disponibilidad (HA) de Hadoop especificando el número de instancias maestras del clúster. El número de maestros solo se puede especificar al crear el clúster.
Actualmente, Dataproc admite dos configuraciones de maestro:
- 1 principal (predeterminado, sin alta disponibilidad)
- 3 maestros (alta disponibilidad de Hadoop)
Comparación entre el modo predeterminado y el modo de alta disponibilidad de Hadoop
Fallo de Compute Engine: en el caso poco frecuente de un fallo inesperado de Compute Engine, las instancias de Dataproc experimentarán un reinicio de la máquina. La configuración predeterminada de un solo maestro de Dataproc está diseñada para recuperarse y seguir procesando nuevo trabajo en estos casos, pero las tareas en curso fallarán necesariamente y deberán volver a intentarse, y no se podrá acceder a HDFS hasta que el NameNode único se recupere por completo al reiniciar. En el modo de alta disponibilidad, se configuran Alta disponibilidad de HDFS y Alta disponibilidad de YARN para permitir operaciones YARN y HDFS sin interrupciones aunque se produzcan fallos o reinicios de nodos únicos.
Finalización del controlador de trabajos: el controlador o programa principal de los trabajos que ejecutes seguirá representando un posible punto único de fallo si la corrección del trabajo depende de que el programa del controlador se ejecute correctamente. Los trabajos enviados a través de la API Jobs de Dataproc no se consideran de alta disponibilidad y se terminarán si falla el nodo maestro que ejecuta los programas de controladores de trabajos correspondientes. Para que las tareas individuales sean resistentes a los fallos de un solo nodo mediante un clúster de Cloud Dataproc de alta disponibilidad, la tarea debe 1) ejecutarse sin un programa de controlador síncrono o 2) ejecutar el programa de controlador en un contenedor de YARN y estar escrita para gestionar los reinicios del programa de controlador. Consulta Iniciar Spark en YARN para ver un ejemplo de cómo se pueden ejecutar programas de controladores reiniciables en contenedores de YARN para tolerar fallos.
Fallo de zona: al igual que ocurre con todos los clústeres de Dataproc, todos los nodos de un clúster de alta disponibilidad residen en la misma zona. Si se produce un fallo que afecta a todos los nodos de una zona, no se mitigará.
Nombres de instancia
El maestro predeterminado se llama cluster-name-m
, y los maestros 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 maestros del clúster. Todos los maestros participan en un clúster de ZooKeeper, lo que permite la conmutación por error automática de otros servicios de Hadoop.
HDFS
En un clúster de Dataproc estándar:
cluster-name-m
se ejecuta:- NameNode
- Secondary NameNode
En un clúster de Dataproc de alta disponibilidad:
cluster-name-m-0
ycluster-name-m-1
ejecutan:- NameNode
- ZKFailoverController
- Todos los maestros ejecutan JournalNode
- No hay ningún Secondary NameNode
Consulta la documentación sobre alta disponibilidad de HDFS para obtener más información sobre los componentes.
YARN
En un clúster de Dataproc estándar, cluster-name-m
ejecuta ResourceManager.
En un clúster de Dataproc de alta disponibilidad, todos los maestros ejecutan ResourceManager.
Consulta la documentación sobre la alta disponibilidad de YARN para obtener más información sobre los componentes.
Crear un clúster de alta disponibilidad
Comando 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 REST
Para crear un clúster de alta disponibilidad, usa la API clusters.create y asigna el valor 3
a masterConfig.numInstances.
Consola
Para crear un clúster de alta disponibilidad, selecciona Alta disponibilidad (3 maestros, N trabajadores) en la sección Tipo de clúster del panel Configurar clúster de la página Crear un clúster de Dataproc.