Un cluster HDFS tiene dos tipos de nodos que operan en un patrón maestro-esclavo:
1. NameNode (el maestro) y NameNode (el maestro) y
2. Número de DataNodes (esclavos/trabajadores).
HDFS NameNode
1. NameNode es el principal componente central del marco de la arquitectura HDFS.
2. NameNode también se conoce como nodo maestro.
3. HDFS Namenode almacena metadatos, es decir, el número de bloques de datos, el nombre del archivo, la ruta, los ID de los bloques, la ubicación de los bloques, el número de réplicas y también la configuración relacionada con los esclavos. Estos metadatos están disponibles en la memoria del maestro para una recuperación más rápida de los datos.
4. NameNode mantiene los metadatos relacionados con el espacio de nombres del sistema de archivos en la memoria, para un tiempo de respuesta más rápido. Por lo tanto, se necesita más memoria. Así que la configuración de NameNode debe desplegarse en una configuración fiable.
5. NameNode mantiene y gestiona los nodos esclavos, y les asigna tareas.
6. NameNode tiene conocimiento de todos los DataNodes que contienen bloques de datos para un archivo determinado.
7. NameNode se coordina con cientos o miles de nodos de datos y sirve las peticiones procedentes de las aplicaciones cliente.
Dos archivos ‘FSImage’ y el ‘EditLog’ se utilizan para almacenar información de metadatos.
FsImage: Es la instantánea el sistema de archivos cuando se inicia Name Node. Es un «archivo de imagen». FsImage contiene todo el espacio de nombres del sistema de archivos y se almacena como un archivo en el sistema de archivos local de NameNode. También contiene una forma serializada de todos los directorios e inodos de archivos del sistema de archivos. Cada inodo es una representación interna de los metadatos del archivo o directorio.
EditLogs: Contiene todas las modificaciones recientes realizadas en el sistema de archivos en el FsImage más reciente. NameNode recibe una solicitud de creación/actualización/borrado del cliente. Después, esta petición se registra primero en el archivo de ediciones.
Funciones de NameNode en HDFS
1. Es el demonio maestro que mantiene y gestiona los DataNodes (nodos esclavos).
2. Registra los metadatos de todos los archivos almacenados en el clúster, por ejemplo, la ubicación de los bloques almacenados, el tamaño de los archivos, los permisos, la jerarquía, etc.
3. Registra cada cambio que se produce en los metadatos del sistema de archivos. Por ejemplo, si se elimina un archivo en HDFS, el NameNode lo registrará inmediatamente en el EditLog.
4. Recibe regularmente un Heartbeat y un informe de bloques de todos los DataNodes del cluster para asegurarse de que los DataNodes están vivos.
5. Mantiene un registro de todos los bloques en HDFS y en qué nodos se encuentran estos bloques.
6. El NameNode también es responsable de cuidar el factor de replicación de todos los bloques.
7. En caso de que el DataNode falle, el NameNode elige nuevos DataNodes para nuevas réplicas, equilibra el uso del disco y gestiona el tráfico de comunicación a los DataNodes.
HDFS DataNode
1. DataNode también se conoce como nodo esclavo.
2. En la arquitectura HDFS de Hadoop, DataNode almacena los datos reales en HDFS.
3. DataNodes responsable de servir, leer y escribir las solicitudes de los clientes.
4. DataNodes puede desplegar en hardware de productos básicos.
5. Los DataNodes envían información al NameNode sobre los archivos y bloques almacenados en ese nodo y responden al NameNode para todas las operaciones del sistema de archivos.
6. Cuando un DataNode se pone en marcha se anuncia al NameNode junto con la lista de bloques de los que es responsable.
7. Los DataNode suelen estar configurados con mucho espacio en el disco duro. Porque los datos reales se almacenan en el DataNode.
Funciones de DataNode en HDFS
1. Son demonios o procesos esclavos que se ejecutan en cada máquina esclava.
2. Los datos reales se almacenan en los DataNodes.
3. Los DataNodes realizan las peticiones de lectura y escritura de bajo nivel de los clientes del sistema de archivos.
4. Cada DataNode envía un mensaje heartbeat al Name Node cada 3 segundos y transmite que está vivo. En el caso de que el Nodo de Nombre no reciba un heartbeat de un Nodo de Datos durante 10 minutos, el Nodo de Nombre considera que ese Nodo de Datos en particular está muerto y comienza el proceso de replicación de bloques en algún otro Nodo de Datos..
5. Todos los Nodos de Datos están sincronizados en el cluster Hadoop de manera que puedan comunicarse entre sí y asegurarse de
i. Equilibrar los datos en el sistema
ii. Mover los datos para mantener una alta replicación
iii. Copiar los datos cuando sea necesario