true the following about hadoop hdfs hadoop2 high-availability

hadoop - the - nodo de nombre vs nodo de nombre secundario



which of the following is true about yarn? (7)

Hadoop es coherente y tolerante a la partición, es decir, se incluye en la categoría CP del teorema CAP.

Hadoop no está disponible porque todos los nodos dependen del nombre del nodo. Si el nombre del nodo cae, el cluster se cae.

Pero teniendo en cuenta el hecho de que el clúster HDFS tiene un nodo de nombre secundario, no podemos llamar a hadoop como disponible. Si el nodo de nombre está desactivado, el nodo de nombre secundario se puede usar para las escrituras.

¿Cuál es la diferencia principal entre el nodo de nombre y el nodo de nombre secundario que hace que hadoop no esté disponible?

Gracias por adelantado.


Cuando se inicia NameNode, carga FSImage y reproduce registros de edición para crear el espacio de nombres actualizado más reciente. Este proceso puede llevar mucho tiempo si el tamaño del archivo de registro de edición es grande y, por lo tanto, aumenta el tiempo de inicio. El trabajo del Nodo de nombre secundario es verificar periódicamente el registro de edición y la reproducción para crear FSImage actualizado y almacenar en el almacenamiento persistente. Cuando se inicia Name Node, no es necesario volver a reproducir el registro de edición para crear FSImage actualizado, utiliza FSImage creado por el nodo de nombre secundario.


El namenode almacena la información del sistema de archivos HDFS en un archivo llamado fsimage. Las actualizaciones del sistema de archivos (agregar / eliminar bloques) no actualizan el archivo fsimage, sino que se registran en un archivo, por lo que la E / S se agrega rápidamente solo a la transmisión en lugar de a las escrituras de archivos aleatorias. Al reiniciar, el namenode lee el fsimage y luego aplica todos los cambios del archivo de registro para actualizar el estado del sistema de archivos en la memoria. Este proceso lleva tiempo.

El trabajo de Secondnamenode no es un nodo secundario al nombre, sino que solo lee periódicamente el registro de cambios del sistema de archivos y los aplica en el archivo fsimage, por lo que se actualiza. Esto permite que el namenode se inicie más rápido la próxima vez.

Desafortunadamente, el servicio de Secondnamenode no es un namenode secundario de reserva, a pesar de su nombre. Específicamente, no ofrece HA para el namenode. Esto está bien ilustrado here .

Consulte Descripción de las operaciones de inicio de NameNode en HDFS .

Tenga en cuenta que las distribuciones más recientes (Hadoop 2.6 actual) introducen la Alta disponibilidad de namenode mediante NFS (almacenamiento compartido) y / o la Alta disponibilidad de namenode mediante el Quorum Journal Manager .


El namenode es un nodo maestro que contiene metadatos en términos de fsimage y también contiene el registro de edición. El registro de edición contiene información de bloque agregada / eliminada recientemente en el espacio de nombres del namenode. El archivo fsimage contiene metadatos de todo el sistema hadoop en un almacenamiento permanente. Cada vez que necesitamos realizar cambios de forma permanente en fsimage, debemos reiniciar namenode para que la información de registro de edición se pueda escribir en namenode, pero lleva mucho tiempo hacerlo.

Se utiliza un namenode secundario para actualizar fsimage. El nodo de nombre secundario accederá al registro de edición y realizará cambios en fsimage de forma permanente para que la próxima vez namenode pueda iniciarse más rápido.

Básicamente, el namenode secundario es un ayudante para namenode y realiza la funcionalidad de mantenimiento para el namenode.


Incluso en HDFS High Availability, donde hay dos NameNodes en lugar de un NameNode y un SecondaryNameNode, no hay disponibilidad en el sentido estricto de CAP. Solo se aplica al componente NameNode, e incluso allí, si una partición de red separa al cliente de los dos NameNodes, el clúster no estará disponible.


Las cosas han cambiado a lo largo de los años, especialmente con Hadoop 2.x. Ahora Namenode está altamente disponible con la función de conmutación por error.

El Nombre de nodo secundario es opcional ahora y el Nombre de espera se ha utilizado para el proceso de conmutación por error.

Standby NameNode se mantendrá actualizado con todos los cambios del sistema de archivos que realiza Active NameNode .

HDFS La alta disponibilidad es posible con dos opciones: NFS y Quorum Journal Manager, pero la opción preferida es Quorum Journal Manager.

Echa un vistazo a la documentación de Apache.

De la diapositiva 8 de: http://www.slideshare.net/cloudera/hdfs-futures-world2012-widescreen

Cuando cualquier modificación del espacio de nombres es realizada por el nodo Activo, registra de manera duradera un registro de la modificación en la mayoría de estos JN. El nodo En espera se lee estas ediciones de los JN y se aplica a su propio espacio de nombre.

En el caso de una conmutación por error, el modo En espera se asegurará de que haya leído todas las ediciones de los Nodos de Jounal antes de pasar al estado Activo. Esto garantiza que el estado del espacio de nombres esté completamente sincronizado antes de que se produzca una conmutación por error.

Eche un vistazo al proceso de conmutación por error en la pregunta de SE relacionada:

¿Cómo funciona el proceso de conmutación por error de Hadoop Namenode?

Con respecto a sus consultas sobre la teoría de CAP para Hadoop:

  1. Puede ser fuerte consistente
  2. HDFS está casi disponible en Alta disponibilidad a menos que haya tenido algo de mala suerte (si las tres réplicas de un bloque están desactivadas, no obtendrá datos)
  3. Soporta partición de datos

Name Node es un nodo primario en el que todos los metadatos se almacenan en los archivos fsimage y editlog periódicamente. Pero, cuando el nodo de nombre hacia abajo nodo secundario estará en línea, pero este nodo solo tendrá acceso de lectura a los archivos fsimage y editlog y no tendrá acceso de escritura a ellos. Todas las operaciones del nodo secundario se almacenarán en la carpeta temporal. cuando el nodo de nombre vuelva a estar en línea, esta carpeta temporal se copiará al nodo de nombre y el nombre de nodo actualizará los archivos fsimage y editlog.


Si lo explico de manera simple, supongamos que Name Node es un hombre (en funcionamiento / en vivo) y un Name Node secundario como una máquina ATM (almacenamiento / almacenamiento de datos)
Por lo tanto, todas las funciones realizadas por NN o solo para hombres, pero si se desactiva o falla, SNN no servirá de nada, no funcionará, pero luego puede usarse para recuperar sus datos o registros