¿Qué es HDFS?
Es un sistema de archivos distribuido diseñado para ejecutarse en hardware básico. HDFS es altamente tolerante a fallas y está diseñado para implementarse en hardware de bajo costo. HDFS proporciona acceso de alto rendimiento a los datos de la aplicación y es adecuado para aplicaciones que tienen grandes conjuntos de datos
Arquitectura
HDFS tiene una arquitectura maestro/esclavo.
Un clúster HDFS consta de un único NameNode, un servidor maestro que administra el espacio de nombres del sistema de archivos y regula el acceso a los archivos por parte de los clientes.
NameNode ejecuta operaciones de espacio de nombres del sistema de archivos como abrir, cerrar y renombrar archivos y directorios. También determina la asignación de bloques a DataNode.
Los DataNodes son responsables de atender las solicitudes de lectura y escritura de los clientes del sistema de archivos. Los DataNodes también realizan la creación, eliminación y replicación de bloques mediante instrucciones del NameNode.

Replicación de datos
HDFS está diseñado para almacenar de manera confiable archivos muy grandes en máquinas en un clúster grande. Almacena cada archivo como una secuencia de bloques. Los bloques de un archivo se replican para tolerancia a fallas. El tamaño del bloque y el factor de replicación son configurables por archivo.
Los archivos en HDFS son de escritura única y tienen estrictamente un escritor en cualquier momento.

Sistema de Archivos
HDFS admite una organización de archivos jerárquica tradicional. Un usuario o una aplicación pueden crear directorios y almacenar archivos dentro de estos directorios.
La jerarquía del espacio de nombres del sistema de archivos es similar a la mayoría de los otros sistemas de archivos existentes; uno puede crear y eliminar archivos, mover un archivo de un directorio a otro o cambiar el nombre de un archivo.
HDFS admite cuotas de usuario y permisos de acceso.
