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
- Replicació de Dades: HDFS replica les dades en múltiples nodes per assegurar la disponibilitat i la fiabilitat.
- NameNode i DataNodes: El NameNode gestiona la metadata i els DataNodes emmagatzemen les dades reals.
- Heartbeats i Block Reports: Els DataNodes envien senyals de vida (heartbeats) i informes de blocs (block reports) al NameNode per indicar que estan operatius.
- Rebalanceig de Dades: Redistribució de dades per mantenir l'equilibri de càrrega entre els DataNodes.
- 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ó
- Detecció de Fallada: El NameNode detecta la fallada mitjançant la manca de heartbeats.
- Reassignació de Blocs: El NameNode reassigna els blocs afectats a altres DataNodes.
- 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
- Configura un clúster Hadoop amb tres DataNodes.
- Carrega un fitxer de 300 MB al HDFS.
- Verifica la replicació dels blocs de dades.
- Simula la fallada d'un DataNode i observa com el NameNode gestiona la recuperació.
Solució
- Configuració del Clúster: Segueix les instruccions de configuració de Hadoop per crear un clúster amb tres DataNodes.
- Carrega del Fitxer:
hdfs dfs -put /path/to/local/file /path/to/hdfs/destination
- Verificació de la Replicació:
hdfs fsck /path/to/hdfs/destination -files -blocks -locations
- Simulació de Fallada:
- Atura un DataNode:
stop-dfs.sh
- Observa els logs del NameNode per veure com es gestiona la recuperació.
- Atura un DataNode:
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.
Curs de Hadoop
Mòdul 1: Introducció a Hadoop
- Què és Hadoop?
- Visió general de l'ecosistema Hadoop
- Hadoop vs Bases de dades tradicionals
- Configuració de l'entorn Hadoop
Mòdul 2: Arquitectura de Hadoop
- Components bàsics de Hadoop
- HDFS (Sistema de fitxers distribuït de Hadoop)
- Marc MapReduce
- YARN (Yet Another Resource Negotiator)
Mòdul 3: HDFS (Sistema de fitxers distribuït de Hadoop)
Mòdul 4: Programació MapReduce
- Introducció a MapReduce
- Flux de treball d'una feina MapReduce
- Escriure un programa MapReduce
- Tècniques d'optimització de MapReduce
Mòdul 5: Eines de l'ecosistema Hadoop
Mòdul 6: Conceptes avançats de Hadoop
- Seguretat de Hadoop
- Gestió de clústers de Hadoop
- Ajust de rendiment de Hadoop
- Serialització de dades de Hadoop
Mòdul 7: Aplicacions reals i estudis de cas
- Hadoop en emmagatzematge de dades
- Hadoop en aprenentatge automàtic
- Hadoop en processament de dades en temps real
- Estudis de cas d'implementacions de Hadoop