Introducció

La tolerància a fallades és una característica fonamental del Sistema de Fitxers Distribuït de Hadoop (HDFS). Aquesta capacitat permet que el sistema continuï funcionant correctament fins i tot quan es produeixen fallades en els components del sistema. En aquest tema, explorarem com HDFS aconsegueix la tolerància a fallades mitjançant diverses tècniques i mecanismes.

Conceptes Clau

  1. Replicació de Dades: HDFS replica les dades en múltiples nodes per assegurar la disponibilitat i la fiabilitat.
  2. NameNode i DataNodes: El NameNode gestiona la metadata i els DataNodes emmagatzemen les dades reals.
  3. Heartbeats i Block Reports: Els DataNodes envien senyals de vida (heartbeats) i informes de blocs (block reports) al NameNode per indicar que estan operatius.
  4. Rebalanceig de Dades: Redistribució de dades per mantenir l'equilibri de càrrega entre els DataNodes.
  5. Mecanismes de Recuperació: Procediments per recuperar dades en cas de fallada d'un node.

Replicació de Dades

Explicació

HDFS divideix els fitxers en blocs de dades i replica aquests blocs en diversos DataNodes. Per defecte, cada bloc es replica tres vegades, però aquest nombre es pot configurar segons les necessitats del sistema.

Exemple

Fitxer A (300 MB) -> Dividit en 3 blocs de 100 MB cadascun:
Blocs: A1, A2, A3

Replicació (factor de replicació = 3):
A1 -> DataNode1, DataNode2, DataNode3
A2 -> DataNode2, DataNode3, DataNode4
A3 -> DataNode3, DataNode4, DataNode5

Beneficis

  • Alta Disponibilitat: Si un DataNode falla, les dades encara estan disponibles en altres nodes.
  • Fiabilitat: Redueix el risc de pèrdua de dades.

NameNode i DataNodes

Explicació

  • NameNode: Actua com a mestre i gestiona la metadata del sistema de fitxers, com ara la ubicació dels blocs de dades.
  • DataNodes: Emmagatzemen les dades reals i executen les operacions de lectura/escriptura.

Mecanismes de Tolerància a Fallades

  • NameNode secundari: Manté una còpia de seguretat de la metadata per recuperar-se en cas de fallada del NameNode principal.
  • DataNodes: En cas de fallada d'un DataNode, els blocs replicats en altres nodes asseguren la continuïtat del servei.

Heartbeats i Block Reports

Explicació

  • Heartbeats: Senyals periòdics enviats pels DataNodes al NameNode per indicar que estan operatius.
  • Block Reports: Informes periòdics enviats pels DataNodes al NameNode amb informació sobre els blocs de dades que emmagatzemen.

Beneficis

  • Monitoratge: Permet al NameNode detectar fallades de DataNodes ràpidament.
  • Gestió de Dades: Assegura que el NameNode tingui informació actualitzada sobre la ubicació dels blocs de dades.

Rebalanceig de Dades

Explicació

El rebalanceig de dades és el procés de redistribuir els blocs de dades entre els DataNodes per mantenir un equilibri de càrrega. Això és especialment important després d'afegir o eliminar nodes del clúster.

Exemple

DataNode1: 80% d'ús
DataNode2: 20% d'ús

Rebalanceig:
Alguns blocs de DataNode1 es mouen a DataNode2 per equilibrar l'ús.

Beneficis

  • Rendiment: Millora el rendiment del sistema evitant sobrecàrregues en nodes específics.
  • Eficiència: Utilitza els recursos del clúster de manera més eficient.

Mecanismes de Recuperació

Explicació

Quan es detecta una fallada en un DataNode, el NameNode inicia el procés de recuperació per assegurar que les dades continuïn disponibles.

Passos de Recuperació

  1. Detecció de Fallada: El NameNode detecta la fallada mitjançant la manca de heartbeats.
  2. Reassignació de Blocs: El NameNode reassigna els blocs afectats a altres DataNodes.
  3. Replicació de Blocs: Els blocs es repliquen en nous DataNodes per mantenir el factor de replicació.

Beneficis

  • Continuitat del Servei: Assegura que les dades estiguin disponibles fins i tot en cas de fallada de nodes.
  • Integritat de Dades: Manté la integritat de les dades replicant els blocs en altres nodes.

Exercici Pràctic

Enunciat

  1. Configura un clúster Hadoop amb tres DataNodes.
  2. Carrega un fitxer de 300 MB al HDFS.
  3. Verifica la replicació dels blocs de dades.
  4. Simula la fallada d'un DataNode i observa com el NameNode gestiona la recuperació.

Solució

  1. Configuració del Clúster: Segueix les instruccions de configuració de Hadoop per crear un clúster amb tres DataNodes.
  2. Carrega del Fitxer:
    hdfs dfs -put /path/to/local/file /path/to/hdfs/destination
    
  3. Verificació de la Replicació:
    hdfs fsck /path/to/hdfs/destination -files -blocks -locations
    
  4. Simulació de Fallada:
    • Atura un DataNode:
      stop-dfs.sh
      
    • Observa els logs del NameNode per veure com es gestiona la recuperació.

Conclusió

La tolerància a fallades és una característica essencial de HDFS que assegura la disponibilitat i la fiabilitat de les dades en un entorn distribuït. Mitjançant la replicació de dades, el monitoratge constant dels nodes i els mecanismes de recuperació, HDFS pot gestionar fallades de components sense interrompre el servei. Aquesta robustesa fa que HDFS sigui una opció ideal per a l'emmagatzematge i el processament de grans volums de dades.

© Copyright 2024. Tots els drets reservats