El sistema de archivos distribuido de Hadoop (HDFS) es el sistema de almacenamiento de datos principal utilizado por las aplicaciones de Hadoop. HDFS emplea una arquitectura NameNode y DataNode para implementar un sistema de archivos distribuido que proporciona acceso de alto rendimiento a los datos en clústeres Hadoop altamente escalables.
Hadoop en sí es un marco de procesamiento distribuido de código abierto que administra el procesamiento y almacenamiento de datos para aplicaciones de big data. HDFS es una parte clave de las muchas tecnologías del ecosistema de Hadoop. Proporciona un medio confiable para administrar grupos de big data y admitir aplicaciones de análisis de big data relacionadas.
¿Cómo funciona HDFS?
HDFS permite la transferencia rápida de datos entre nodos informáticos. Al principio, estaba estrechamente acoplado con MapReduce, un marco para el procesamiento de datos que filtra y divide el trabajo entre los nodos de un clúster, y organiza y condensa los resultados en una respuesta coherente a una consulta. De manera similar, cuando HDFS toma datos, divide la información en bloques separados y los distribuye a diferentes nodos en un clúster.
Con HDFS, los datos se escriben en el servidor una vez y se leen y reutilizan varias veces después de eso. HDFS tiene un NameNode principal, que realiza un seguimiento de dónde se guardan los datos de archivo en el clúster.
HDFS también tiene varios DataNodes en un clúster de hardware básico, generalmente uno por nodo en un clúster. Los DataNodes generalmente se organizan dentro del mismo rack en el centro de datos. Los datos se dividen en bloques separados y se distribuyen entre los distintos DataNodes para su almacenamiento. Los bloques también se replican en todos los nodos, lo que permite un procesamiento paralelo altamente eficiente.
El NameNode sabe qué DataNode contiene qué bloques y dónde residen los DataNodes dentro del clúster de la máquina. El NameNode también administra el acceso a los archivos, incluidas las lecturas, escrituras, creaciones, eliminaciones y la replicación del bloque de datos en los DataNodes.
NameNode opera junto con DataNodes. Como resultado, el clúster puede adaptarse dinámicamente a la demanda de capacidad del servidor en tiempo real agregando o restando nodos según sea necesario.
Los DataNodes están en constante comunicación con el NameNode para determinar si los DataNodes necesitan completar tareas específicas. En consecuencia, NameNode siempre conoce el estado de cada DataNode. Si NameNode se da cuenta de que un DataNode no está funcionando correctamente, puede reasignar inmediatamente la tarea de ese DataNode a un nodo diferente que contenga el mismo bloque de datos. Los DataNodes también se comunican entre sí, lo que les permite cooperar durante las operaciones normales de archivos.
Además, el HDFS está diseñado para ser altamente tolerante a fallas. El sistema de archivos replica, o copia, cada dato varias veces y distribuye las copias a los nodos individuales, colocando al menos una copia en un bastidor de servidor diferente al de las otras copias.
Arquitectura HDFS, NameNodes y DataNodes
HDFS utiliza una arquitectura primaria / secundaria. El NameNode del clúster HDFS es el servidor principal que administra el espacio de nombres del sistema de archivos y controla el acceso del cliente a los archivos. Como componente central del sistema de archivos distribuido de Hadoop, NameNode mantiene y administra el espacio de nombres del sistema de archivos y proporciona a los clientes los permisos de acceso adecuados. Los DataNodes del sistema administran el almacenamiento que está conectado a los nodos en los que se ejecutan.
HDFS expone un espacio de nombres del sistema de archivos y permite que los datos del usuario se almacenen en archivos. Un archivo se divide en uno o más de los bloques que se almacenan en un conjunto de DataNodes. NameNode realiza operaciones de espacio de nombres del sistema de archivos, incluida la apertura, el cierre y el cambio de nombre de archivos y directorios. El NameNode también gobierna el mapeo de bloques a los DataNodes. Los DataNodes sirven solicitudes de lectura y escritura de los clientes del sistema de archivos. Además, realizan la creación, eliminación y replicación de bloques cuando NameNode les indica que lo hagan.
HDFS admite una organización de archivos jerárquica tradicional. Una aplicación o un usuario puede crear directorios y luego almacenar archivos dentro de estos directorios. La jerarquía del espacio de nombres del sistema de archivos es como la mayoría de los otros sistemas de archivos: un usuario puede crear, eliminar, cambiar el nombre o mover archivos de un directorio a otro.
El NameNode registra cualquier cambio en el espacio de nombres del sistema de archivos o sus propiedades. Una aplicación puede estipular el número de réplicas de un archivo que HDFS debe mantener. El NameNode almacena el número de copias de un archivo, llamado factor de replicación de ese archivo.
Características de HDFS
Hay varias características que hacen que HDFS sea particularmente útil, que incluyen:
- Replicación de datos. Esto se utiliza para garantizar que los datos estén siempre disponibles y evitar la pérdida de datos. Por ejemplo, cuando un nodo falla o hay una falla de hardware, los datos replicados se pueden extraer de cualquier otro lugar dentro de un clúster, por lo que el procesamiento continúa mientras se recuperan los datos.
- Tolerancia a fallos y fiabilidad. La capacidad de HDFS para replicar bloques de archivos y almacenarlos en nodos en un clúster grande garantiza la tolerancia a fallas y la confiabilidad.
- Alta disponibilidad. Como se mencionó anteriormente, debido a la replicación entre notas, los datos están disponibles incluso si el NameNode o un DataNode falla.
- Escalabilidad. Debido a que HDFS almacena datos en varios nodos del clúster, a medida que aumentan los requisitos, un clúster puede escalar a cientos de nodos.
- Alto rendimiento. Debido a que HDFS almacena datos de manera distribuida, los datos se pueden procesar en paralelo en un grupo de nodos. Esto, más la ubicación de los datos (consulte el siguiente punto), reduce el tiempo de procesamiento y permite un alto rendimiento.
- Localidad de datos. Con HDFS, la computación ocurre en los DataNodes donde residen los datos, en lugar de que los datos se muevan a donde está la unidad computacional. Al minimizar la distancia entre los datos y el proceso informático, este enfoque disminuye la congestión de la red y aumenta el rendimiento general de un sistema.
¿Cuáles son los beneficios de utilizar HDFS?
Hay cinco ventajas principales de usar HDFS, que incluyen:
- Rentabilidad. Los DataNodes que almacenan los datos dependen de hardware asequible y listo para usar, lo que reduce los costos de almacenamiento. Además, debido a que HDFS es de código abierto, no hay tarifa de licencia.
- Almacenamiento de grandes conjuntos de datos. HDFS almacena una variedad de datos de cualquier tamaño, desde megabytes hasta petabytes, y en cualquier formato, incluidos los datos estructurados y no estructurados.
- Recuperación rápida de fallas de hardware. HDFS está diseñado para detectar fallas y recuperarse automáticamente por sí solo.
- Portabilidad. HDFS es portátil en todas las plataformas de hardware y es compatible con varios sistemas operativos, incluidos Windows, Linux y Mac OS / X.
- Acceso a datos en streaming. HDFS está diseñado para un alto rendimiento de datos, que es lo mejor para acceder a datos de transmisión.
Ejemplos y casos de uso de HDFS
El sistema de archivos distribuido de Hadoop surgió en Yahoo como parte de los requisitos de los motores de búsqueda y la colocación de anuncios en línea de esa empresa. Al igual que otras empresas basadas en la web, Yahoo hizo malabarismos con una variedad de aplicaciones a las que accedía un número cada vez mayor de usuarios, que creaban cada vez más datos.
EBay, Facebook, LinkedIn y Twitter se encuentran entre las empresas que utilizaron HDFS para respaldar el análisis de big data para abordar requisitos similares a los de Yahoo.
HDFS ha encontrado un uso más allá de cumplir con los requisitos de los motores de búsqueda y la publicación de anuncios. The New York Times lo utilizó como parte de conversiones de imágenes a gran escala, Media6Degrees para el procesamiento de registros y el aprendizaje automático, LiveBet para el almacenamiento de registros y el análisis de probabilidades, Joost para el análisis de sesiones y Fox Audience Network para el análisis de registros y la minería de datos. HDFS también es el núcleo de muchos lagos de datos de código abierto.
De manera más general, las empresas de varias industrias usan HDFS para administrar grupos de big data, que incluyen:
- Empresas eléctricas. La industria de la energía despliega unidades de medida fasorial (PMU) en todas sus redes de transmisión para monitorear el estado de las redes inteligentes. Estos sensores de alta velocidad miden corriente y voltaje por amplitud y fase en estaciones de transmisión seleccionadas. Estas empresas analizan los datos de PMU para detectar fallas del sistema en los segmentos de la red y ajustar la red en consecuencia. Por ejemplo, pueden cambiar a una fuente de energía de respaldo o realizar un ajuste de carga. Las redes de PMU registran miles de registros por segundo y, en consecuencia, las compañías eléctricas pueden beneficiarse de sistemas de archivos económicos y de alta disponibilidad, como HDFS.
- Márketing. Las campañas de marketing dirigidas dependen de que los especialistas en marketing sepan mucho sobre su público objetivo. Los especialistas en marketing pueden obtener esta información de varias fuentes, incluidos los sistemas CRM, las respuestas de correo directo, los sistemas de punto de venta, Facebook y Twitter. Debido a que muchos de estos datos no están estructurados, un clúster HDFS es el lugar más rentable para colocar los datos antes de analizarlos.
- Proveedores de petróleo y gas. Las compañías de petróleo y gas manejan una variedad de formatos de datos con conjuntos de datos muy grandes, incluidos videos, modelos terrestres en 3D y datos de sensores de máquinas. Un clúster HDFS puede proporcionar una plataforma adecuada para el análisis de big data que se necesita.
- Investigar. El análisis de datos es una parte clave de la investigación, por lo que, nuevamente, los clústeres HDFS brindan una forma rentable de almacenar, procesar y analizar grandes cantidades de datos.
Replicación de datos HDFS
La replicación de datos es una parte importante del formato HDFS, ya que garantiza que los datos permanezcan disponibles si hay un nodo o una falla de hardware. Como se mencionó anteriormente, los datos se dividen en bloques y se replican en numerosos nodos del clúster. Por lo tanto, cuando un nodo deja de funcionar, el usuario puede acceder a los datos que estaban en ese nodo desde otras máquinas. HDFS mantiene el proceso de replicación a intervalos regulares.
¿Quiere saber más sobre HDFS y Hadoop en general? Consulte nuestra guía del comprador para ver algunos de los formas en que se utilizan las distribuciones de Hadoop y los tipos de productos que están disponibles.