¿Qué es Apache Hadoop?
Apache Hadoop es un framework open-source para el almacenamiento distribuido y procesamiento paralelo de grandes volúmenes de datos sobre clusters de hardware commodity. Está compuesto por cuatro módulos principales: HDFS (sistema de archivos distribuido), MapReduce (motor de procesamiento), YARN (gestión de recursos) y Hadoop Common (utilidades compartidas).
Fue creado a partir de los papers de Google sobre GFS y MapReduce (2003–2004) y se convirtió en el estándar de facto para Big Data durante la década de 2010. Hoy convive con Apache Spark, que ofrece procesamiento en memoria significativamente más rápido, pero Hadoop sigue siendo relevante por su ecosistema maduro, su modelo de almacenamiento y su costo.
Las 6 ventajas principales
Hadoop brilla en escenarios específicos. Estas son las razones técnicas por las que sigue siendo una opción sólida para arquitecturas de datos a gran escala:
HDFS escala a petabytes distribuyendo bloques de datos (128 MB por defecto) entre cientos o miles de nodos. No hay límite práctico de almacenamiento: agregas nodos y el sistema crece linealmente.
Al usar hardware commodity (servidores estándar baratos en lugar de SANs especializadas), el costo por TB almacenado es entre 5x y 30x menor que en soluciones tradicionales. Los formatos columnar (ORC, Parquet) optimizan aún más la compresión.
HDFS replica cada bloque de datos 3 veces por defecto en nodos diferentes. Si un DataNode falla, el NameNode detecta la pérdida y ordena replicar los bloques afectados desde las copias disponibles — sin intervención manual.
A diferencia del escalado vertical (más RAM/CPU en un servidor), Hadoop escala agregando nodos al cluster. Este modelo es más económico, elimina el single point of failure y permite crecer gradualmente según la demanda real.
El licenciamiento es open-source (cero costo de software base). El modelo de hardware commodity y la capacidad de usar instancias Spot en AWS EMR hacen que el costo de procesamiento de un TB pueda ser hasta 90% menor que en un data warehouse tradicional.
Hadoop expone interfaces de alto nivel: HiveQL permite que analistas con SQL accedan a datos en HDFS sin escribir código Java. Pig ofrece un lenguaje de scripting para ETL. MapReduce es la capa baja para desarrolladores que necesitan control total.
Soporte para volumen masivo
El sistema de archivos HDFS divide los archivos en bloques y los distribuye entre los DataNodes del cluster. El NameNode mantiene el árbol de metadatos y sabe dónde está cada bloque. Esta arquitectura permite que un job de MapReduce o Spark procese los datos localmente en cada nodo donde residen, evitando el costoso movimiento de datos por la red.
Eficiencia de almacenamiento
Hadoop almacena datos en su formato original (raw) en HDFS. Esto lo hace ideal como Data Lake: ingesta cualquier tipo de dato (estructurado, semiestructurado, no estructurado) sin necesidad de definir un schema previo — el schema se aplica al momento de leer (schema-on-read).
Los formatos de almacenamiento columnar como Apache Parquet y ORC son los más eficientes en este ecosistema: comprimen los datos entre 4x y 10x respecto a CSV, y permiten que queries SQL solo lean las columnas necesarias en lugar del archivo completo.
Recuperación de datos automática
El factor de replicación de HDFS (por defecto 3) garantiza que cada bloque de datos exista en al menos 3 DataNodes distintos, idealmente distribuidos entre diferentes racks físicos. El NameNode monitorea constantemente los heartbeats de los DataNodes: si un nodo deja de responder después del timeout configurado (10 minutos por defecto), el NameNode marca sus bloques como bajo-replicados e inicia el proceso de re-replicación automática desde las copias disponibles.
Escalado horizontal
Cuando el cluster necesita más capacidad, simplemente se agregan DataNodes nuevos. YARN (el resource manager de Hadoop) detecta los nodos disponibles y comienza a asignarles containers para los jobs. HDFS detecta el nuevo DataNode y el balancer puede redistribuir bloques hacia él para equilibrar la utilización del cluster.
Costo efectivo
El modelo económico de Hadoop es radicalmente diferente al de los data warehouses tradicionales (Teradata, Oracle Exadata): en lugar de hardware especializado de alto costo y licencias propietarias caras, usa servidores commodity estándar y software open-source. En AWS, Amazon EMR gestiona el cluster y permite usar instancias Spot para los nodos de trabajo (Task Nodes), reduciendo el costo de cómputo hasta un 90% respecto a instancias On-Demand.
Accesible para distintos perfiles
Una de las fortalezas del ecosistema Hadoop es que ofrece capas de abstracción para distintos niveles técnicos. No es necesario escribir jobs en Java para obtener valor del cluster:
Escribe SQL estándar y Hive lo traduce a jobs de MapReduce o Spark sobre HDFS. La curva de aprendizaje es mínima para alguien que ya sabe SQL.
Spark corre sobre YARN (el resource manager de Hadoop) y puede leer y escribir HDFS nativamente. Es la forma moderna de procesar datos en un cluster Hadoop.
Notebook interactivo conectado a un cluster Spark/Hadoop. Permite exploración iterativa de grandes datasets sin mover datos fuera del cluster.
Para casos muy específicos donde se necesita control total del procesamiento. Hoy en día MapReduce casi siempre se reemplaza por Spark, que es más rápido y más fácil de escribir.
¿Cuándo usarlo y cuándo no?
- Tienes datos que superan los 10–50 TB
- Necesitas almacenar datos en múltiples formatos (logs, JSON, Parquet)
- Tu carga de trabajo es principalmente batch (no tiempo real)
- Quieres construir un Data Lake con schema-on-read
- El presupuesto limita el uso de data warehouses cloud premium
- Ya tienes un equipo con experiencia en el ecosistema Hadoop
- Tus datos son menores a 1–2 TB (una sola máquina es suficiente)
- Necesitas baja latencia o procesamiento en tiempo real
- Tu equipo no tiene experiencia con clusters distribuidos
- La velocidad de iteración importa más que el costo de infraestructura
- Prefieres SQL interactivo (Redshift, BigQuery o Athena son mejores)
- Usas AWS y quieres cero gestión de infraestructura (usa Glue + S3)
Hadoop vs alternativas
| Característica | Hadoop + HDFS | Spark standalone | AWS Glue + S3 | Redshift |
|---|---|---|---|---|
| Escala de datos | PB | PB | PB (S3) | TB–PB |
| Velocidad de procesamiento | Lento (disco) | Rápido (memoria) | Moderado | Muy rápido (OLAP) |
| Tiempo real / streaming | No nativo | Spark Streaming | No nativo | No |
| Gestión de infraestructura | Alta (cluster propio) | Media | Cero (serverless) | Mínima (gestionado) |
| Costo a escala | Muy bajo | Bajo | Moderado | Alto |
| Curva de aprendizaje | Alta | Media | Baja | Baja (SQL) |
Resumen de comandos esenciales
| # | Operación | Comando |
|---|---|---|
| 01 | Listar HDFS | hdfs dfs -ls /user/data/ |
| 02 | Subir archivo a HDFS | hdfs dfs -put local.csv /user/data/ |
| 03 | Descargar de HDFS | hdfs dfs -get /user/data/file.csv . |
| 04 | Ver uso de espacio | hdfs dfs -du -h /user/data/ |
| 05 | Estado del cluster | hdfs dfsadmin -report |
| 06 | Ver jobs YARN | yarn application -list |
| 07 | Lanzar job Spark en YARN | spark-submit --master yarn etl.py |
| 08 | Rebalancear HDFS | start-balancer.sh -threshold 10 |
