¿Qué es el sistema de archivos distribuido de Hadoop (HDFS)? Arquitectura, características y operaciones

Publicado: 2020-02-03

Hadoop Distributed File System o HDFS es el sistema de almacenamiento principal de Hadoop. Almacena grandes archivos de datos que se ejecutan en hardware básico. Este sistema de almacenamiento es escalable, fácilmente ampliable y tolerante a fallas.

Cuando hay demasiados datos almacenados en una máquina física, el almacenamiento se divide en varias máquinas para evitar la pérdida de datos. HDFS es uno de esos sistemas de almacenamiento de archivos distribuidos que administra las operaciones de almacenamiento en muchas máquinas físicas. Aquí hay un tutorial de HDFS para que entiendas mejor cómo funciona este sistema. Comencemos con su arquitectura.

Tabla de contenido

Arquitectura HDFS

Hadoop Distributed File System tiene una arquitectura maestro-esclavo con los siguientes componentes:

  1. Namenode : es el hardware básico que contiene tanto el software de namenode como el sistema operativo Linux/GNU. El software Namenode puede ejecutarse sin problemas en hardware básico sin encontrar ningún problema. El sistema con namenode como componente funciona como servidor maestro. Realiza tareas que incluyen regular cómo los clientes acceden a los archivos, administrar el espacio de nombres del sistema de archivos y ejecutar operaciones, incluida la apertura, el cierre y el cambio de nombre de directorios y archivos.
  2. Nodo de datos : es un hardware básico que contiene el software del nodo de datos y el sistema operativo Linux/GNU. Los nodos en un clúster siempre tendrán nodos de datos asociados con ellos. Estos nodos son responsables de gestionar el almacenamiento del sistema/hardware básico. Algunas de las tareas que realizan los nodos de datos incluyen operaciones de lectura/escritura de acuerdo con la solicitud del cliente y la creación, replicación y eliminación de bloques según las instrucciones proporcionadas por el nodo de nombre.
  3. Bloque : todos los datos del usuario se almacenan en archivos HDFS. Cada archivo que pertenece a un sistema de archivos en particular se divide en uno o más segmentos, que luego se almacenan en nodos de datos. Los segmentos de archivos en los que se dividen los archivos son bloques. Por lo tanto, los datos más pequeños que HDFS es capaz de leer o escribir son un bloque. Inicialmente, cada bloque tiene un tamaño de 64 MB. Sin embargo, este tamaño se puede aumentar según los cambios de configuración de HDFS.

La arquitectura HDFS ofrece una imagen clara e inequívoca de las obras HDFS. Consiste en varios nodos de datos, pero solo un nodo de nombre. Los metadatos se almacenan en el nodo de nombre, mientras que el trabajador real de los dos tipos de nodos es el nodo de datos. Los nodos se organizan en diferentes bastidores en los que se almacenan bloques de datos para mejorar la tolerancia a fallas y la confiabilidad de los datos. Los clientes tienen que interactuar con el nodo de nombre para leer/escribir un archivo. El clúster tiene varios nodos de datos que utilizan el disco local para almacenar los datos disponibles. El nodo de datos y el nodo de nombres están perpetuamente en contacto entre sí. Datanode también es responsable de replicar datos utilizando la función de replicación en diferentes nodos de datos.

Las operaciones de lectura y escritura en HDFS tienen lugar en el nivel más pequeño, es decir, el nivel de bloque. El concepto de replicación de datos es fundamental para el funcionamiento de HDFS: se garantiza una alta disponibilidad de los datos durante la falla del nodo mediante la creación de réplicas de bloques y su distribución en todo el clúster.

Operaciones HDFS

HDFS y el sistema de archivos de Linux son bastante similares entre sí. Entonces, HDFS nos permite realizar todas las operaciones que estamos acostumbrados a realizar con los sistemas de archivos locales: podemos crear un director, cambiar permisos, copiar archivos y hacer mucho más. También tenemos varios derechos de acceso a archivos, que incluyen lectura, escritura y ejecución.

Operación de lectura en HDFS: si desea leer un archivo almacenado en HDFS, deberá interactuar con namenode. Como ya se mencionó, todos los metadatos se almacenan en el nodo de nombre. Una vez que interactúe con namenode, le dará la dirección del nodo de datos donde está almacenado el archivo que está buscando. Luego puede interactuar con el nodo de datos cuya dirección le ha proporcionado namenode y luego leer la información desde allí.

Interactúa con la API del sistema de archivos, que solicita namenode para compartir la dirección del bloque. Antes de proporcionar esta información, namenode realiza una verificación para averiguar si tiene derecho a acceder a estos datos o no. Una vez que se realiza esta verificación, namenode comparte la ubicación del bloque o niega el acceso debido a restricciones.

El namenode le da una forma de token, que debe mostrar al respectivo nodo de datos para acceder a un archivo. Esta es una forma de mecanismo de seguridad que emplea HDFS para garantizar que la persona adecuada acceda a los datos. El nodo de datos solo le permitirá leer el archivo después de mostrar el token.

Operación de escritura: La operación de escritura sigue el mismo patrón inicial. Debe solicitar el namenode para permitirle escribir datos. A cambio, le proporcionará la ubicación del nodo de datos en el que se debe realizar la operación de escritura. Tan pronto como termine de realizar esta operación, el nodo de datos comenzará a replicar estos bloques de datos escritos en otros nodos de datos. Una vez finalizada la replicación, recibirá un acuse de recibo. El mecanismo de autenticación en la operación de escritura es el mismo que el de la operación de lectura.

Características de HDFS

  1. Disponibilidad : no hay demasiados sistemas de archivos que vengan con la alta disponibilidad de HDFS. El sistema de archivos sigue un mecanismo de replicación de datos en forma de réplicas de bloques en los nodos de datos (esclavos) en todo un clúster. Para acceder a estos datos, debe interactuar con los nodos de datos que contienen los bloques de información que están buscando.
  2. Confiabilidad : Hadoop Distributed File System es un sistema de almacenamiento de datos altamente confiable. La cantidad de datos que se pueden almacenar en rangos de HDFS en petabytes. Utiliza un clúster para almacenar todos sus datos, que se separan para formar bloques. Luego usa nodos del clúster para almacenar estos bloques.
  3. Tolerancia a fallas : esta característica es la fuerza de trabajo de HDFS en condiciones que no son tan propicias como suelen ser. HDFS tolera fallas como ningún otro sistema de archivos. Resguarda sus datos de los efectos de cualquier imprevisto, incluso en el futuro. Como ya se mencionó, la replicación de datos se realiza en diferentes máquinas. ¿Qué sucede cuando alguna de estas máquinas deja de funcionar? Podría haber sido un problema importante con cualquier otro sistema, pero no con HDFS. HDFS le permite acceder a sus datos desde cualquier otra máquina que también tenga una copia de los bloques de datos que está buscando. Esto se llama verdadera tolerancia a fallas.
  4. Escalabilidad : HDFS utiliza diferentes nodos en un clúster para almacenar datos. Cuando aumentan los requisitos de almacenamiento, siempre puede seguir adelante y escalar el clúster. Esta es otra característica exclusiva de HDFS. El sistema de distribución de archivos le proporciona dos mecanismos para escalar el clúster: escalabilidad horizontal y vertical.
  5. Replicación : la replicación es una función que distingue a HDFS de otros sistemas de almacenamiento. La replicación minimiza las instancias de pérdida de datos debido a un evento desfavorable, como fallas de nodos, fallas de hardware y otros. El proceso de replicación se lleva a cabo regularmente y en diferentes máquinas. Por lo tanto, no hay pérdida de datos si una máquina se cae. Puede usar cualquier otra máquina para obtener sus datos.

Objetivos HDFS

  1. Administración de grandes conjuntos de datos: a diferencia de otros sistemas de distribución de archivos, HDFS tiene la arquitectura necesaria para administrar aplicaciones que cuentan con grandes conjuntos de datos. Dependiendo de la enormidad de los conjuntos de datos en cuestión, puede tener cientos de nodos para cada clúster.
  2. Detección y recuperación de fallas: no muchos pueden vencer a HDFS en sus capacidades asociadas con la detección de fallas y luego tratarlas adecuadamente. Una gran cantidad de hardware básico en cuestión hace que HDFS esté expuesto a fallas frecuentes de los componentes. Sin embargo, esto no es una desventaja. Todos los sistemas que se ocupan de dicho hardware básico están abiertos al fracaso. Sin embargo, la pregunta sigue siendo si el sistema es capaz o no de detectar rápida y automáticamente esas fallas y proporcionar recuperación al mismo tiempo. HDFS ciertamente es capaz.
  3. Mayor rendimiento: HDFS procesa cada tarea de manera eficiente ya que el cálculo real se lleva a cabo cerca de los propios datos. Esto es especialmente importante cuando se trata de grandes conjuntos de datos. Este mecanismo aumenta el rendimiento y elimina significativamente el problema del tráfico de red.

Para concluir, nos gustaría decir que HDFS puede almacenar grandes cantidades de datos de manera confiable y sin sentir los efectos de una falla de hardware. También es altamente tolerante a fallas, altamente disponible y altamente escalable.

Para viajar a las profundidades de Hadoop y convertirse en un experto, consulte la Certificación PG de upGrad & BITS Pilani en Big Data & Analytics. Obtenga experiencia práctica, uno a uno con expertos de la industria, un mentor dedicado, el estado de BITS Pilani Alumni y más.

Si está interesado en saber más sobre Big Data, consulte nuestro programa PG Diploma in Software Development Specialization in Big Data, que está diseñado para profesionales que trabajan y proporciona más de 7 estudios de casos y proyectos, cubre 14 lenguajes y herramientas de programación, prácticas talleres, más de 400 horas de aprendizaje riguroso y asistencia para la colocación laboral con las mejores empresas.

Aprenda cursos de desarrollo de software en línea de las mejores universidades del mundo. Obtenga Programas PG Ejecutivos, Programas de Certificado Avanzado o Programas de Maestría para acelerar su carrera.

Domina la Tecnología del Futuro - Big Data

Más de 400 horas de aprendizaje. 14 idiomas y herramientas. Estado de ex alumnos del IIIT-B.
Programa de Certificado Avanzado en Big Data de IIIT Bangalore