Desmitificando el Big Data
Un Vistazo Profundo a HDFS y MapReduce
El Fundamento del Almacenamiento: HDFS
Hadoop Distributed File System (HDFS) es la columna vertebral para almacenar volúmenes masivos de datos. No es un sistema de archivos cualquiera; está diseñado desde cero para ser tolerante a fallos, escalable y eficiente para grandes conjuntos de datos.
Tamaño de Bloque por Defecto
128 MB
Los archivos se dividen en grandes bloques para optimizar la transferencia de datos.
Factor de Replicación
3x
Cada bloque se copia 3 veces en el clúster para garantizar la disponibilidad.
Arquitectura de HDFS
Namenode (Maestro)
Gestiona los metadatos: la estructura de directorios y la ubicación de los bloques. Es el cerebro del sistema.
Datanodes (Esclavos)
Almacenan los bloques de datos reales. Reportan su estado al Namenode periódicamente.
Flujo de Escritura en HDFS
El cliente solicita al Namenode escribir un archivo.
Namenode responde con una lista de Datanodes para los bloques.
El cliente envía los bloques al primer Datanode, que los propaga en un "pipeline" a los demás para su replicación.
Flujo de Lectura en HDFS
El cliente solicita al Namenode la ubicación de los bloques de un archivo.
Namenode responde con las ubicaciones. Los datos no pasan por él.
El cliente lee los bloques directamente desde los Datanodes en paralelo.
El Motor de Procesamiento: MapReduce
MapReduce es un paradigma de programación para procesar datos masivos de forma paralela y distribuida. Su lema es "mover el cómputo a los datos", minimizando el tráfico de red y aprovechando el poder de todo el clúster.
Flujo de Trabajo de MapReduce
1. Fase MAP
Procesa datos en paralelo, generando pares (clave, valor) intermedios.
2. Fase SHUFFLE & SORT
(Automática) Agrupa todos los valores por clave.
3. Fase REDUCE
Agrega los valores de cada clave para obtener el resultado final.
Ejemplo: Conteo de Palabras
Tras un trabajo MapReduce para contar la frecuencia de palabras en un texto, el resultado puede visualizarse así. La fase `Reduce` sumaría las ocurrencias de cada palabra.
Análisis de Rendimiento
MapReduce tiene inconvenientes. Su principal cuello de botella es la fase de `Shuffle` y la escritura a disco, lo que inspiró la creación de tecnologías más modernas como Apache Spark.
No hay comentarios:
Publicar un comentario