Alta disponibilidad de NameNode con Quorum Journal Manager



La alta disponibilidad de NameNode es una de las características más importantes de Hadoop 2.0. La alta disponibilidad de NameNode con Quorum Journal Manager se utiliza para compartir registros de edición entre los NameNodes activos y en espera.

Esta es una de las características más importantes de Hadoop 2.0. Antes de hablar sobre la función de alta disponibilidad de Namenode, es fundamental saber qué es Quorum. El quórum es un término genérico que se utiliza en la agrupación cuando decimos que una agrupación en particular es estable. Quorum proporciona una lista de máquinas y ayuda a determinar el estado del clúster. Hay dos tipos de quórum: quórum esperado y quórum calculado.





Alta disponibilidad de NameNode con Quorum Journal Manager (QJM)

Antes de Hadoop 2.0, NameNode era un punto único de falla (SPOF) en un clúster HDFS. Cada clúster tenía un solo NameNode, y si esa máquina no estaba disponible, el clúster en su totalidad no estaría disponible hasta que el NameNode se reiniciara o se iniciara en una máquina separada. En un clúster HA clásico, dos máquinas independientes se configuran como NameNodes. En cualquier momento, uno de los NameNodes estará en estado activo y el otro estará en estado de espera. El Active NameNode es responsable de todas las operaciones del cliente en el clúster, mientras que el Standby simplemente actúa como esclavo, manteniendo el estado suficiente para proporcionar una conmutación por error rápida.

Para que el nodo en espera mantenga su estado coordinado con el nodo activo, ambos nodos se comunican con un grupo de demonios separados llamados 'JournalNodes' (JN). Cuando el nodo Activo realiza cualquier modificación del espacio de nombres, registra un registro de los cambios realizados en los JournalNodes. El nodo Standby es capaz de leer la información modificada de los JN y los supervisa periódicamente para detectar cambios. A medida que el nodo en espera ve los cambios, los aplica a su propio espacio de nombres. En caso de una conmutación por error, el Standby se asegurará de haber leído todos los cambios de JounalNodes antes de cambiar su estado a 'Estado activo'. Esto garantiza que el estado del espacio de nombres esté completamente sincronizado antes de que se produzca una conmutación por error.



Para proporcionar una conmutación por error rápida, es esencial que el nodo Standby tenga la información actualizada y actual sobre la ubicación de los bloques en el clúster. Para que esto suceda, los DataNodes se configuran con la ubicación de ambos NameNodes y envían información de ubicación de bloque y latidos a ambos.

cómo usar el servicio ahora

Es esencial que solo uno de los NameNodes esté activo a la vez. De lo contrario, el estado del espacio de nombres se desviaría entre los dos y provocaría la pérdida de datos o resultados erróneos. Para evitar esto, los JournalNodes solo permitirán un solo NameNode a un escritor a la vez. Durante una conmutación por error, el NameNode que se activará asumirá la responsabilidad de escribir en los JournalNodes.

Tienes una pregunta para nosotros? Por favor, menciónelos en la sección de comentarios y nos comunicaremos con usted.



Artículos Relacionados:

conversión de tipo c ++

Descripción general de Hadoop 2.0 Cluster Architecture Federation