Salta el contingut

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:

hadoop distcp hdfs://namenode-origen:9000/data/prova hdfs://namenode-desti:9000/data/prova

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 fsck abans 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 distcp i 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 -update a Integritat en sistemes de fitxers distribuïts).

Rúbrica: Rúbrica RA3