Salta el contingut

Integritat en sistemes de fitxers distribuïts

Contingut d'ampliació

Aquest bloc amplia el RA1 amb continguts que no formen part del repartiment oficial de les 99 hores del currículum (vegeu Programació). El professorat el pot tractar com a activitat de reforç o ampliació segons la disponibilitat horària del grup.

Relació amb la resta del bloc — un tercer marc, no una repetició

Aquesta pàgina tracta la integritat des d'una tercera perspectiva, complementària a les altres dues d'aquest mòdul: el Bloc 5 parla de la integritat d'un pipeline ETL (completesa, unicitat, validesa...), Integritat de les dades en aquest mateix bloc parla de la integritat d'un dataset per a Machine Learning (exactitud, fiabilitat, seguretat...), i aquesta pàgina parla de la integritat física dels blocs de dades en un sistema de fitxers distribuït: que els bytes emmagatzemats en disc no s'hagin corromput.

Checksums i CRC32C

HDFS usa checksums CRC32C per detectar corrupció de dades a nivell de bloc. Quan un DataNode llegeix un bloc, recalcula el checksum i el compara amb el valor emmagatzemat: si hi ha discrepància, el bloc es marca com a corrupte i HDFS recupera automàticament el contingut a partir d'una rèplica sana.

# Verificar la integritat de tots els fitxers d'un directori
hdfs fsck /data/raw/ -files -blocks -locations

# Exemple de sortida:
# /data/raw/vendes_2024_01.parquet 52428800 bytes, replicated: replication=3,
#   1 block(s): OK
# Status: HEALTHY
# Total blocks (validated): 1 (avg. block size 52428800 B)
# Under-replicated blocks: 0 (0.0 %)
# Corrupt blocks: 0

# Verificar i llistar blocs corruptes
hdfs fsck / -includeSnapshots -list-corruptfileblocks

# Forçar la re-replicació d'un fitxer
hdfs dfsadmin -setReplication 3 /data/raw/fitxer_important.parquet

Simulació de corrupció i recuperació

En un entorn de test es pot simular la corrupció d'un bloc per veure com HDFS reacciona:

# 1. Identifica la ubicació física del bloc
hdfs fsck /data/raw/test.parquet -files -blocks -locations
# Sortida: /data/hadoop/dfs/data/current/BP-xxxx/current/finalized/
#          subdir0/subdir0/blk_1073741825

# 2. Corromp el bloc (nomes en un DataNode, per a proves)
# dd if=/dev/urandom of=/ruta/al/bloc bs=1024 count=1 conv=notrunc

# 3. HDFS detecta la corrupcio automaticament al proper heartbeat
# i activa la recuperacio des d'una replica sana

# 4. Verifica que s'ha recuperat
hdfs fsck /data/raw/test.parquet

Moviment de dades entre clústers i metadades

Quan es migren dades entre clústers (per exemple, per ampliar capacitat o canviar de proveïdor cloud), cal preservar tant les dades com les seves metadades (propietari, permisos, timestamps, factor de replicació). Eines com DistCp (Distributed Copy) fan aquesta còpia en paral·lel, i és habitual re-executar hdfs fsck a l'origen i al destí per confirmar que la migració no ha introduït corrupció.

# Còpia distribuïda entre dos clústers HDFS
hadoop distcp hdfs://cluster-origen/data hdfs://cluster-desti/data

Miniactivitat — AC5074/08/03

Explica, amb les teves paraules, per què un sistema de fitxers distribuït necessita comprovar la integritat dels blocs de manera contínua (i no només un cop en escriure'ls), i quin paper hi juga el factor de replicació a l'hora de recuperar-se d'una corrupció.


Bloc 8 | Mòdul M5074 Sistemes de Big Data | Institut Sa Palomera (Blanes) | Curs CEIABD 2026-2027