Introducción a la arquitectura HDFS

HDFS significa Hadoop Distributed File System, que dice que los archivos se dividen en bloques y se almacenan en varias máquinas.

Características de HDFS

Las características de HDFS son las siguientes:

1. Disponibilidad

En HDFS, los datos se replican regularmente entre los nodos de datos creando una réplica de bloques en el otro nodo de datos. Entonces, en caso de falla o error de hardware, el usuario puede obtener sus datos de otro nodo de datos donde los datos se han replicado.

2. Escalabilidad

En HDFS, los datos se almacenan en múltiples nodos de datos en forma de bloques. HDFS permite a los usuarios aumentar el tamaño de los bloques cuando sea necesario. Hay dos tipos de mecanismos de escalabilidad utilizados en HDFS: escalabilidad horizontal y escalabilidad vertical.

3. Replicación

Estas son las características únicas de HDFS que permiten a un usuario acceder fácilmente a sus datos en caso de cualquier falla de hardware.

Arquitectura HDFS

HDFS sigue la arquitectura maestro-esclavo que tiene los siguientes componentes:

1. NameNode:

NameNode también se conoce como nodo maestro porque maneja todos los bloques que están presentes en DataNodes.

NameNode realiza las siguientes tareas:

  • Administra todos los bloques de DataNode
  • Da acceso al archivo al usuario
  • Mantiene todos los registros de bloques presentes en DataNode
  • NameNode registra toda la información de los archivos, por ejemplo, si se cambia el nombre de un archivo o si se ha cambiado o eliminado el contenido, NameNode registra inmediatamente esa modificación en EditLogs
  • Toma los registros de todos los bloques de los nodos de datos para garantizar que todos los bloques estén vivos en DataNode.
  • En caso de error, si ocurre alguna falla de hardware, selecciona inmediatamente otro DataNode para crear la replicación y administrar la comunicación a todos los DataNodes

Tipos de archivos en NameNode

NameNode contiene dos tipos de archivos FsImage y EditLogs

yo. FsImage: también se llama imagen de archivo porque contiene toda la información en un sistema de archivos con espacios de nombres. También contiene todos los directorios y los archivos del sistema de archivos de forma serializada.

ii) EditLogs: las modificaciones actuales realizadas en los archivos del sistema de archivos se almacenan en EditLogs.

2. Nombre de nodo secundario

El NameNode secundario también se llama como un nodo de punto de control porque realiza puntos de control regulares. Actúa como un ayudante para NameNode primario.

NameNode secundario realiza las siguientes tareas

  • NameNode secundario combina FsImage y EditLogs del NameNode.
  • Lee toda la información del sistema de archivos de la memoria de almacenamiento de NameNode y escribe esta información en un disco duro del sistema de archivos.
  • Descarga FsImage y EditLogs de NameNode a intervalos regulares y lee la información de modificación realizada en los archivos EditLogs y anota la modificación en FsImage. Este proceso crea una nueva FsImage que luego se envía de vuelta al NameNode. Cada vez que se inicie NameNode, usará estas FsImage.

3. DataNode

DataNode también se conoce como un nodo esclavo porque maneja todos los nodos que contienen datos en una máquina esclava. DataNode almacena datos en formato de archivo ext3 o ext4.

El nodo de datos realiza las siguientes tareas:

  • Todos los datos se almacenan en DataNodes
  • Realiza todas las operaciones de los archivos según la solicitud de los usuarios, por ejemplo, leer el contenido del archivo, escribir nuevos datos en los archivos,
  • También sigue todas las instrucciones dadas por NameNode, por ejemplo, renombrar el archivo, eliminar algunos bloques en DataNode, crear bloques, etc.

4. Nodo de punto de control:

El nodo de punto de control es un nodo que creó un punto de control de archivos a intervalos regulares. Nodo de punto de control en HDFS, descargue FsImage y EditLogs de NameNode y combínelos para crear una nueva imagen y enviar esa nueva imagen a NameNode. El último punto de control se almacena en un directorio con la misma estructura que el directorio del nodo de nombre. Debido a esto, la imagen marcada siempre está disponible si es necesario.

5. Nodo de respaldo:

La función de un nodo de respaldo es similar a un nodo de punto de control para realizar una tarea de verificación. En Hadoop, el nodo Copia de seguridad almacena una copia más reciente y actualizada del espacio de nombres del sistema de archivos. No es necesario descargar los archivos FsImage y editsLogs del NameNode activo para crear un punto de control en el nodo Backup porque está sincronizado con el estado del NameNode activo. La función del nodo Copia de seguridad es más precisa porque guarda el espacio de nombres en el archivo FsImage local y restablece editLogs.

6. Bloques:

Todos los datos de los usuarios se almacenan en archivos de HDFS que luego se dividen en pequeños segmentos. Estos segmentos se almacenan en los DataNodes. Los segmentos que están presentes en DataNodes se llaman como un bloque. El tamaño de bloque predeterminado de estos bloques es de 128 MB. El tamaño del bloque se puede cambiar según los requisitos de los usuarios mediante la configuración de HDFS.

Si el tamaño de los datos es menor que el tamaño del bloque, el tamaño del bloque es igual al tamaño de los datos. Por ejemplo, si los datos son de 135 MB, creará 2 bloques. Uno tendrá un tamaño predeterminado de 128 MB y otro tendrá solo 7 MB, no 128 MB. Debido a esto, se ahorra mucho espacio y tiempo de reloj del disco.

Gestión de replicación en arquitectura HDFS:

HDFS es tolerante a fallas. La tolerancia a fallas es un poder del sistema en caso de fallas y cómo responde a los errores y condiciones difíciles. La tolerancia a fallos funciona en función del proceso de creación de réplicas. Las copias de los datos del usuario se guardan en máquinas en el clúster DHFS. Por lo tanto, si hay algún fallo o falla en el sistema, se puede acceder a una copia de esos datos desde las otras máquinas del clúster HDFS. Cada bloque en la arquitectura HDFS tiene 3 réplicas que se almacenan en diferentes DataNodes. NameNode mantiene las copias disponibles en DataNodes. NameNode agrega o elimina copias en función de los criterios de bloques que no se replican demasiado o se replican en exceso.

Operación de escritura

Para escribir archivos en HDFS, el cliente se comunicará para metadatos al NameNode. El Nameode responde con varios bloques, su ubicación, copias, etc. El cliente divide los archivos en múltiples bloques según la información del nameode. Luego, comienza a enviarlos a DataNode. Primero, el cliente envía el bloque A al DataNode 1 con otra información sobre DataNodes. Cuando DataNode 1 recibe el bloque A del cliente, DataNode 1 copia el mismo bloque en el mismo rack en DataNode 2. Debido a que ambos DataNodes están en el mismo rack, la transferencia del bloque se realiza a través del interruptor de rack. DataNode 2 ahora copia el mismo bloque en DataNode 3 Debido a que ambos DataNodes están en bastidores diferentes, la transferencia del bloque se realiza a través de un interruptor fuera de la plataforma. Una vez que DataNode recibe los bloques del cliente, enviará la confirmación a NameMode. Cada bloque del archivo, se repite el mismo proceso.

Operación de lectura

Para la operación de lectura, el primer cliente se comunica por metadatos al NameNode. Un cliente sale de NameNode con el nombre y la ubicación del archivo. El Nameode responde con un número de bloque, ubicación, copias y otra información. Después de eso, el Cliente se comunica con DataNodes. Según la información recibida del NameNode, el cliente comienza a leer datos paralelos de los DataNodes. Cuando el cliente o la aplicación recibe todo el bloque del archivo, combina estos bloques en un formulario de archivo original.

Conclusión - Arquitectura HDFS

Con la ayuda de NameNode y DataNode, almacena de manera confiable archivos muy grandes en máquinas en un clúster grande. Debido a la tolerancia a fallas, es útil acceder a los datos mientras fallan el software o el hardware. Así es como funciona la arquitectura HDFS.

Artículos recomendados

Esta ha sido una guía para la arquitectura HDFS. Aquí discutimos los conceptos básicos con diferentes tipos de arquitectura, características y administración de replicación de la arquitectura HDFS. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Qué es el modelado de datos?
  2. ¿Qué es la visualización de datos?
  3. ¿Qué es un almacén de datos?
  4. ¿Qué es el desarrollador SQL?

Categoría: