menu EXPLORA
history RECIENTE

Qué es HDFS (Hadoop Distributed Filesystem)

Cuando trabajamos con nuestro ordenador, guardamos archivos, imágenes o videos en el disco duro que tiene integrado. No obstante, cuando trabajamos con una cantidad masiva de datos no podemos almacenarlos en un solo ordenador ya que ocuparía más menoría de la que tiene.

Introducción a HDFS

Aquí se nos plantean distintos problemas. ¿Qué pasaría si uno de los ordenadores se estropeara? Perderíamos una parte de nuestros datos. Por esta razón, los sistemas de archivos distribuidos tienen que ser tolerantes a fallos para evitar la perdida de datos.

Hadoop integra su propio sistema de archivos llamado Hadoop Distributed Filesystem o más conocido como HDFS. Este sistema cumple con lo mencionado anteriormente. Es capaz de almacenar millones y millones de datos en una red distribuida de ordenadores y además es tolerante a fallos, evitando que se pierdan datos durante un error en alguno de los nodos.

En este artículo del blog haremos una introducción a HDFS para entiendas su importancia, sus características y el flujo de datos entre frameworks big data.

apache kafka

Apache Kafka

Kafka es un framework big data especializado en la transmisión de eventos streaming en tiempo real. Aprende qué es, cómo funciona y sus ventajas y desventajas.

Ver artículo

Características del Sistema de archivos de Hadoop

Archivos muy grandes

Los clústeres de ordenadores Hadoop pueden almacenar archivos que ocupan mucha memoria. Hoy en día, hay sistemas Hadoop que corren aplicaciones con muchos petabytes de datos.

Guardado en bloques

Los archivos en HDFS son partidos en bloques de unos 128 MB de memoria. Estos bloques son duplicados y guardados en diferentes nodos. Tener múltiples copias de un mismo bloque permite recuperar datos si alguno de los nodos se estropea.

Apto para todo tipo de hardwares

Hadoop puede correr en clusters montados con ordenadores de muchos fabricantes distintos. Está pensado para que sea fácil de instalar y poderlo usar de forma sencilla, de forma que parezca que estamos trabajando con un solo ordenador.

Alta escalabilidad

HDFS escala horizontalmente, añadiendo más nodos (ordenadores) en el sistema de clústers. HDFS soporta miles de nodos pudiendo hacer crecer aplicaciones distribuidas de forma rápida y segura.

Acceso de alta latencia

Las aplicaciones que requieren de baja latencia no funcionan bien con HDFS ya que este sistema está pensado para entregar una gran cantidad de datos. Existen otros sistemas de almacenamiento de datos que el acceso es más rápido, como HBase, una base de datos distribuida no relacional orientado a columnas.

Otros posts que te gustarán

  1. Qué es Apache Spark
  2. Máster de machine learning, mejores másteres de España

Tolerante a fallos

HDFS es un sistema redundante. Esto significa que para cada bloque se generan 3 copias que se almacenan en servidores diferentes. Esto permite que si alguno de los ordenadores pierde la información se pueda recuperar rápidamente.

Componentes del sistema HDFS

NameNode

El NameNode es el nodo maestro encargado de organizar y manejar todo el cluster. Contiene los metadatos que especifican en que DataNode está almacenado cada bloque de información.

Además, el NameNode también gestiona los accesos a los DataNodes de los clientes.

Si el NameNode se estropea entonces la información de los bloques no se puede recuperar y la información del HDFS se pierde. Para evitar esto puede habilitarse un NameNode alternativo de repuesto que tomará las riendas cuando el principal dé algún error.

DataNodes

Los datanodes son los esclavos del sistema. Ellos almacenan y recuperan los bloques de datos cuando son ordenados por el Namenode o el cliente.

Flujo de datos entre el cliente y HDFS

Para entender como funciona una aplicación que use un sistema de archivos distribuido como HDFS es importante entender como tiene lugar el flujo de datos entre HDFS, el cliente, el namenode y los datanodes.

Cuando el cliente pide permiso para leer archivos se hace una llamada al namenode y este procede a determinar la localización de los bloques de información en los datanodes.

Una vez encontrados, los datanodes son ordenados a través de su topología por la proximidad con el cliente.

La información del primer bloque se envía el cliente y una vez terminado se cierra la conexión al datanode y se abre la conexión con el datanode del siguiente bloque.

Esto ocurre de forma transparente para el cliente donde ve un flujo continuo de los datos.

Si durante el proceso surge algún error con el datanode de un bloque en concreto, entonces, se buscará el siguiente datanode con ese bloque de información que esté más cerca del cliente. Esto es lo que permite que HDFS sea tolerante a fallos.

Aplicaciones big data compatibles con Hadoop Distributed Filesystem

Muchos frameworks big data funcionan con el sistema de ficheros distribuido de Hadoop por debajo. Algunas de estos programas son Spark, Hive, Pig o Mahout.

Todos estos frameworks hacen el papel de clientes. Llaman a HDFS para recuperar los datos necesarios y a partir de estos efectúan diferentes operaciones antes de mostrarlos al usuario.

Por ejemplo, Mahout utiliza los datos almacenados en HDFS para crear modelos de machine learning o Hive para extraer datos con sentencias SQL similar al lenguaje natural humano.

Mejores cursos para aprender Hadoop y HDFS

Ahora que ya sabes de que va esto de HDFS, ¿quieres aprender como implementarlo de forma practica para tus propios proyectos?

Seguidamente te mostramos algunos de los cursos online donde podrás aprender a fondo esta tecnología big data, HDFS y Hadoop.

  1. The ultimate hands-on Hadoop: Tame your big data!
  2. Introducción a Big Data con Hadoop desde Cero