Introducción

El Sistema de Archivos Distribuido de Hadoop (HDFS) es uno de los componentes fundamentales del ecosistema Hadoop. Diseñado para almacenar grandes volúmenes de datos de manera distribuida, HDFS permite el almacenamiento y acceso eficiente a datos en un clúster de servidores. En esta sección, exploraremos la arquitectura de HDFS, sus características clave y cómo interactuar con él mediante comandos.

Arquitectura de HDFS

Componentes Principales

  1. Namenode:

    • Actúa como el maestro del sistema de archivos.
    • Mantiene el árbol de directorios del sistema de archivos y los metadatos de todos los archivos y directorios.
    • Gestiona el espacio de nombres del sistema de archivos y regula el acceso a los archivos por parte de los clientes.
  2. Datanode:

    • Actúa como el trabajador del sistema de archivos.
    • Almacena los bloques de datos reales.
    • Se comunica regularmente con el Namenode para enviar informes de estado y recibir instrucciones.
  3. Secondary Namenode:

    • No es un respaldo del Namenode.
    • Ayuda a reducir la carga del Namenode al tomar instantáneas periódicas del espacio de nombres y los registros de transacciones.

Diagrama de Arquitectura

+-------------------+       +-------------------+
|      Client       |       |      Client       |
+--------+----------+       +--------+----------+
         |                           |
         |                           |
         v                           v
+--------+----------+       +--------+----------+
|      Namenode     |       |  Secondary Namenode|
+--------+----------+       +--------+----------+
         |                           |
         |                           |
         v                           v
+--------+----------+       +--------+----------+
|      Datanode     |       |      Datanode     |
+--------+----------+       +--------+----------+
         |                           |
         |                           |
         v                           v
+--------+----------+       +--------+----------+
|      Datanode     |       |      Datanode     |
+-------------------+       +-------------------+

Características Clave de HDFS

  • Alta Tolerancia a Fallos: HDFS replica los datos en múltiples nodos para asegurar la disponibilidad y la integridad de los datos en caso de fallos de hardware.
  • Escalabilidad: Diseñado para escalar horizontalmente, HDFS puede manejar petabytes de datos distribuidos en miles de nodos.
  • Acceso a Datos de Alta Velocidad: Optimizado para leer y escribir grandes volúmenes de datos de manera eficiente.
  • Portabilidad: HDFS está diseñado para ejecutarse en hardware de bajo costo, lo que lo hace accesible y económico.

Comandos de HDFS

Comandos Básicos

  1. Listar Archivos y Directorios:

    hdfs dfs -ls /ruta/del/directorio
    

    Ejemplo:

    hdfs dfs -ls /user/hadoop
    
  2. Crear un Directorio:

    hdfs dfs -mkdir /ruta/del/nuevo/directorio
    

    Ejemplo:

    hdfs dfs -mkdir /user/hadoop/nuevo_directorio
    
  3. Copiar un Archivo desde el Sistema de Archivos Local a HDFS:

    hdfs dfs -put /ruta/local/del/archivo /ruta/hdfs/del/archivo
    

    Ejemplo:

    hdfs dfs -put /home/user/archivo.txt /user/hadoop/archivo.txt
    
  4. Copiar un Archivo desde HDFS al Sistema de Archivos Local:

    hdfs dfs -get /ruta/hdfs/del/archivo /ruta/local/del/archivo
    

    Ejemplo:

    hdfs dfs -get /user/hadoop/archivo.txt /home/user/archivo.txt
    
  5. Eliminar un Archivo o Directorio:

    hdfs dfs -rm /ruta/del/archivo
    hdfs dfs -rm -r /ruta/del/directorio
    

    Ejemplo:

    hdfs dfs -rm /user/hadoop/archivo.txt
    hdfs dfs -rm -r /user/hadoop/nuevo_directorio
    

Ejercicio Práctico

Objetivo: Familiarizarse con los comandos básicos de HDFS.

  1. Crear un directorio en HDFS:

    hdfs dfs -mkdir /user/estudiante/ejercicio
    
  2. Copiar un archivo desde el sistema de archivos local a HDFS:

    hdfs dfs -put /home/estudiante/ejemplo.txt /user/estudiante/ejercicio/ejemplo.txt
    
  3. Listar los archivos en el directorio de HDFS:

    hdfs dfs -ls /user/estudiante/ejercicio
    
  4. Copiar el archivo de HDFS al sistema de archivos local:

    hdfs dfs -get /user/estudiante/ejercicio/ejemplo.txt /home/estudiante/ejemplo_copia.txt
    
  5. Eliminar el archivo y el directorio en HDFS:

    hdfs dfs -rm /user/estudiante/ejercicio/ejemplo.txt
    hdfs dfs -rm -r /user/estudiante/ejercicio
    

Soluciones

  1. Crear un directorio en HDFS:

    hdfs dfs -mkdir /user/estudiante/ejercicio
    
  2. Copiar un archivo desde el sistema de archivos local a HDFS:

    hdfs dfs -put /home/estudiante/ejemplo.txt /user/estudiante/ejercicio/ejemplo.txt
    
  3. Listar los archivos en el directorio de HDFS:

    hdfs dfs -ls /user/estudiante/ejercicio
    
  4. Copiar el archivo de HDFS al sistema de archivos local:

    hdfs dfs -get /user/estudiante/ejercicio/ejemplo.txt /home/estudiante/ejemplo_copia.txt
    
  5. Eliminar el archivo y el directorio en HDFS:

    hdfs dfs -rm /user/estudiante/ejercicio/ejemplo.txt
    hdfs dfs -rm -r /user/estudiante/ejercicio
    

Conclusión

En esta sección, hemos cubierto los fundamentos del Sistema de Archivos Distribuido de Hadoop (HDFS), incluyendo su arquitectura, componentes principales y comandos básicos. HDFS es una pieza clave del ecosistema Hadoop, proporcionando un almacenamiento distribuido y tolerante a fallos para grandes volúmenes de datos. Con los conocimientos adquiridos, ahora estás preparado para explorar más a fondo cómo HDFS interactúa con otros componentes de Hadoop y cómo se puede utilizar para gestionar y procesar datos a gran escala.

© Copyright 2024. Todos los derechos reservados