Pràctica PR507505: Verificació d'integritat amb HDFS
Informació de la pràctica
| Camp | Detall |
|---|---|
| Codi | PR507505 |
| Mòdul | 5075 — Big Data Aplicat |
| RA | RA3 — Integritat en sistemes de fitxers distribuïts |
| Durada estimada | 2 hores |
| Modalitat | Individual |
| Lliurament | Informe .md/.pdf amb captures i sortides de comandes |
| Qualificació | Sobre 10 punts, amb rúbrica |
Objectius
- Verificar la integritat d'un conjunt de fitxers HDFS amb
hdfs fsck. - Simular la corrupció d'un bloc i comprovar-ne la recuperació automàtica.
- Migrar dades entre dos clústers HDFS amb
hadoop distcp, preservant-ne les metadades.
Prerequisits
Reaprofita el clúster Hadoop de la pràctica PR507502 (contenidors namenode, datanode), o desplega'n un de nou amb docker compose up -d.
Part 1: Verificació de la integritat
# Puja un fitxer de prova amb factor de replicació 2 (necessites 2+ DataNodes,
# o ajusta a 1 si treballes amb un únic DataNode)
hdfs dfs -put dades_prova.csv /data/prova/
# Comprova l'estat de salut del fitxer
hdfs fsck /data/prova/dades_prova.csv -files -blocks -locations
Documenta la sortida: quants blocs té el fitxer, quantes rèpliques té cadascun i on estan ubicades.
Part 2: Simulació de corrupció i recuperació
Només en un entorn de proves
Aquesta operació escriu bytes aleatoris directament sobre un fitxer de bloc físic. Fes-la només dins d'un contenidor Docker aïllat, mai en un clúster real.
# Localitza físicament un bloc dins del contenidor DataNode
docker exec -it datanode-nom-cognom bash
find /hadoop/dfs/data -name "blk_*" | head -5
# Corromp el bloc trobat (substitueix la ruta)
dd if=/dev/urandom of=<ruta_al_bloc> bs=1024 count=1 conv=notrunc
# Torna a executar fsck i observa el resultat
hdfs fsck /data/prova/dades_prova.csv -files -blocks
Explica què observes: apareix el bloc com a corrupte? Si el fitxer tenia factor de replicació ≥ 2, comprova si el sistema el recupera automàticament al cap d'uns minuts (nou fsck).
Part 3: Migració entre clústers amb DistCp
Desplega un segon clúster HDFS (un segon namenode/datanode amb un altre nom de xarxa Docker), i migra-hi el directori de proves:
Verifica, a banda i banda, que el nombre de fitxers, la mida total i els permisos coincideixen, i torna a executar hdfs fsck al clúster de destí per confirmar que la migració no ha introduït corrupció.
Entrega
- Sortida completa de
hdfs fsckabans i després de la simulació de corrupció. - Explicació de com s'ha recuperat el bloc (o per què no s'ha pogut recuperar, si el factor de replicació era 1).
- Sortida de la migració amb
distcpi verificació de metadades a origen i destí. - Resposta: quin cost (temps, xarxa) creus que tindria repetir aquesta migració amb un dataset de 500 GB, i quina estratègia aplicaries per a minimitzar-lo (vegeu
-updatea Integritat en sistemes de fitxers distribuïts).
Rúbrica: Rúbrica RA3