Hadoop – HDFS (Sistema de archivos distribuidos de Hadoop)

Antes de pasar a aprender sobre el HDFS (Sistema de archivos distribuido de Hadoop), debemos saber qué es realmente el sistema de archivos. El sistema de archivos es un tipo de estructura de datos o método que usamos en un sistema operativo para administrar archivos en el espacio del disco. Esto significa que permite al usuario mantener y recuperar datos del disco local. 

Un ejemplo del sistema de archivos de Windows es NTFS (Sistema de archivos de nueva tecnología) y FAT32 (Tabla de asignación de archivos 32). FAT32 se utiliza en algunas versiones anteriores de Windows, pero se puede utilizar en todas las versiones de Windows XP . De manera similar, como Windows, tenemos el tipo de sistema de archivos ext3, ext4 para el sistema operativo Linux. 

¿Qué es DFS?

DFS significa sistema de archivos distribuidos, es un concepto de almacenar el archivo en múltiples Nodes de manera distribuida. DFS en realidad proporciona la abstracción para un solo sistema grande cuyo almacenamiento es igual a la suma del almacenamiento de otros Nodes en un clúster. 

Entendamos esto con un ejemplo. Supongamos que tiene un DFS compuesto por 4 máquinas diferentes, cada una de 10 TB, en ese caso puede almacenar, digamos, 30 TB en este DFS, ya que le proporciona una máquina combinada de 40 TB. Los datos de 30 TB se distribuyen entre estos Nodes en forma de bloques.  

Hadoop-HDFS-Hadoop-Distributed-File-System

¿Por qué necesitamos DFS?

Quizás esté pensando que podemos almacenar un archivo de 30 TB de tamaño en un solo sistema, entonces, ¿por qué necesitamos este DFS? Esto se debe a que la capacidad de disco de un sistema solo puede aumentar hasta cierto punto. Si de alguna manera administra los datos en un solo sistema, se enfrentará al problema de procesamiento, ya que el procesamiento de grandes conjuntos de datos en una sola máquina no es eficiente. 

Entendamos esto con un ejemplo. Suponga que tiene un archivo de 40 TB de tamaño para procesar. En una sola máquina, tomará aproximadamente 4 horas procesarlo por completo, pero ¿qué pasa si usa un DFS (Sistema de archivos distribuidos)? En ese caso, como puede ver en la imagen a continuación, el archivo de tamaño 40 TB se distribuye entre los 4 Nodes en un clúster, cada Node almacena los 10 TB de archivo. Como todos estos Nodes funcionan simultáneamente, solo tomará 1 hora procesarlo por completo, que es el más rápido, es por eso que necesitamos DFS. 

Procesamiento del sistema de archivos local:  

Local-File-System-Processing

Procesamiento del sistema de archivos distribuido: 

Distributed-File-System-Processing

Descripción general: HDFS 

Ahora creemos que se familiariza con el término sistema de archivos, así que comencemos con HDFS. HDFS (Sistema de archivos distribuidos de Hadoop) se utiliza para el permiso de almacenamiento en un clúster de Hadoop. Está diseñado principalmente para trabajar en dispositivos de hardware básicos (dispositivos que son económicos), trabajando en un diseño de sistema de archivos distribuido. HDFS está diseñado de tal manera que cree más en almacenar los datos en una gran cantidad de bloques en lugar de almacenar pequeños bloques de datos. HDFS en Hadoop proporciona tolerancia a fallas y alta disponibilidad para la capa de almacenamiento y los demás dispositivos presentes en ese clúster de Hadoop. 

HDFS es capaz de manejar datos de mayor tamaño con gran velocidad de volumen y la variedad hace que Hadoop funcione de manera más eficiente y confiable con fácil acceso a todos sus componentes. HDFS almacena los datos en forma de bloque donde el tamaño de cada bloque de datos es de 128 MB, lo que significa que puede cambiarlo de acuerdo con sus requisitos en el archivo hdfs-site.xml en su directorio de Hadoop. 

Algunas características importantes de HDFS (Sistema de archivos distribuidos de Hadoop)

  • Es fácil acceder a los archivos almacenados en HDFS.
  • HDFS también proporciona alta disponibilidad y tolerancia a fallas.
  • Brinda escalabilidad a los Nodes de escalamiento ascendente o descendente según nuestros requisitos.
  • Los datos se almacenan de manera distribuida, es decir, varios Datanodes son responsables de almacenar los datos.
  • HDFS proporciona replicación, por lo que no hay temor a la pérdida de datos.
  • HDFS proporciona alta confiabilidad ya que puede almacenar datos en una amplia gama de petabytes .
  • HDFS tiene servidores integrados en el Node de nombre y el Node de datos que les ayuda a recuperar fácilmente la información del clúster.
  • Proporciona un alto rendimiento. 

Demonio de almacenamiento HDFS

Como todos sabemos, Hadoop funciona con el algoritmo MapReduce, que es una arquitectura maestro-esclavo, HDFS tiene NameNode y DataNode que funcionan con un patrón similar. 

1. NameNode (maestro) 
2. DataNode (esclavo) 

1. NameNode: NameNode funciona como maestro en un clúster de Hadoop que guía el Node de datos (esclavos). Namenode se utiliza principalmente para almacenar los metadatos, es decir, nada más que los datos sobre los datos. Los metadatos pueden ser los registros de transacciones que realizan un seguimiento de la actividad del usuario en un clúster de Hadoop. 

Los metadatos también pueden ser el nombre del archivo, el tamaño y la información sobre la ubicación (número de bloque, identificadores de bloque) de Datanode que Namenode almacena para encontrar el DataNode más cercano para una comunicación más rápida. Namenode instruye a los DataNodes con la operación como eliminar, crear, replicar, etc. 

Como nuestro NameNode funciona como Maestro, debe tener una RAM alta o potencia de procesamiento para mantener o guiar a todos los esclavos en un clúster de Hadoop. Namenode recibe señales de latidos y bloquea informes de todos los esclavos, es decir, DataNodes. 

2. DataNode: DataNodes funciona como un esclavo . Los DataNodes se utilizan principalmente para almacenar los datos en un clúster de Hadoop, la cantidad de DataNodes puede ser de 1 a 500 o incluso más, cuantos más DataNodes tenga su clúster de Hadoop, más datos pueden ser almacenados. por lo que se recomienda que el DataNode tenga una alta capacidad de almacenamiento para almacenar una gran cantidad de bloques de archivos. Datanode realiza operaciones como creación, eliminación, etc. de acuerdo con las instrucciones proporcionadas por NameNode. 
 

Namenode-and-Datanode

Objetivos y suposiciones de HDFS

1. Falla del sistema: como un clúster de Hadoop consta de muchos Nodes con hardware básico, es posible que falle el Node, por lo que el objetivo fundamental de HDFS es resolver este problema de falla y recuperarlo. 

2. Mantenimiento de conjuntos de datos grandes: como HDFS maneja archivos de tamaño que van desde GB a PB, HDFS debe ser lo suficientemente bueno para manejar estos conjuntos de datos muy grandes en un solo clúster. 

3. Mover datos es más costoso que mover la computación: si la operación computacional se realiza cerca de la ubicación donde están presentes los datos, entonces es bastante más rápido y el rendimiento general del sistema puede aumentar junto con minimizar la congestión de la red, lo cual es una buena suposición. 

4. Portátil en varias plataformas: HDFS posee portabilidad que le permite cambiar entre diversas plataformas de hardware y software. 

5. Modelo de coherencia simple: un sistema de archivos distribuido de Hadoop necesita un modelo para escribir una vez que lea mucho acceso a los archivos. Un archivo escrito y luego cerrado no debe modificarse, solo se pueden agregar datos. Esta suposición nos ayuda a minimizar el problema de la coherencia de los datos. MapReduce encaja perfectamente con este tipo de modelo de archivo.
 

Publicación traducida automáticamente

Artículo escrito por dikshantmalidev y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *