Paralelismo y MapReduce
Por qué paralelizar
Un solo equipo tarda en proporción al volumen; partirlo entre muchos baja el tiempo, si la tarea es divisible y el coste de coordinar no se come la ganancia. El paralelismo pelea contra el volumen, no contra la latencia de una única operación pequeña.
Fase map
Cada nodo toma su partición de entrada y emite pares clave-valor transformando las filas. Es la parte que se paraleliza con naturalidad porque cada trozo es independiente de los demás.
Shuffle
Entre map y reduce, el sistema agrupa por clave todas las values dispersas, moviendo datos entre nodos. Es la fase más cara: implica red y disco, y suele marcar el cuello de botella del trabajo.

Fase reduce
Con las claves agrupadas, cada reductor agrega las values de una clave: sumar, contar o combinar. Aquí nace el resultado global a partir de piezas locales ordenadas por clave.
Tolerancia a fallos
- Si un nodo cae, sus tareas se recalculan sobre otros datos: no hay que repetir todo.
- La inmutabilidad de la entrada hace seguro reintentar una pieza fallida.
- El programador no gestiona fallos: el marco los absorbe recomputando.
El límite de MapReduce
Encadenar muchos pasos escribiendo en disco tras cada MapReduce resultó lentísimo para tareas iterativas o interactivas. Guardar en memoria los resultados intermedios, como luego haría Spark, fue la respuesta a ese dolor.
Cuándo sigue valiendo
Para volcados masivos de una sola pasada sobre datos que caben en disco, su sencillez y robustedad continúan siendo oro. No todo pide un motor en memoria; a veces basta partir, procesar y sumar.
Errores frecuentes
- Usar MapReduce para tareas iterativas que repasan veinte veces el mismo dato desde disco.
- Ignorar el coste del shuffle y diseñar claves que dispersan y reagrupan sin necesidad.
- Asustarse ante un nodo caído y repetir el trabajo entero, cuando el marco recomputa solo la pieza.
Ejemplo resuelto: contar palabras en un archivo gigante
Un corpus de cientos de gigabytes necesita el recuento de frecuencia por palabra. El montaje:
- Partir el texto en bloques que quepan y puedan leerse en cada nodo, sin solaparse.
- Mapear: cada nodo emite pares palabra y uno para cada aparición de su bloque.
- Dejar que el marco agrupe por clave, reuniendo en un mismo nodo todas las apariciones de una palabra.
- Reducir: sumar los unos de cada palabra y emitir el total.
- Aprovechar la tolerancia: si un nodo cae, se recalcula solo su partición, no todo el corpus.
¿Para qué sirve en la realidad?
El modelo maduró en buscadores indexando la web entera y sigue detrás de los volcados masivos de una pasada: métricas de telemetría, depuración de logs o agregados nocturnos donde la robustez vale más que la latencia.
En MapReduce, la fase donde los datos se reordenan y agrupan por clave moviéndose entre nodos, y que suele dominar el coste, es:
La principal crítica a MapReduce fue su lentitud en trabajos iterativos por escribir en disco cada etapa.
MapReduce
Toca una tarjeta para ver la respuesta.
Ordena las fases de un trabajo MapReduce clásico:
Arrastra cada ficha a su categoría (o tócala y luego toca la categoría). También puedes usar el teclado.
MapReduceDescripción del modelo map-shuffle-reduce y su origen.
Une cada fase o propiedad con su descripción.
Divide, reparte, combina
- MapReduce
- Ideas
- dividir y vencer
- dividir y vencer
- piezas independientes
- Ideas
- map transforma
- entrada inmutable
- el shuffle mueve red y disco
Qué es MapReduceExplicación del modelo de programación paralelo y su escalabilidad en el tratamiento de datos.
Un análisis necesita doce iteraciones ajustando un modelo sobre los mismos datos. ¿Por qué MapReduce sufriría y qué cambio de arquitectura aliviaría ese coste? Razona por materialización en disco frente a memoria.
Tu texto se guarda sólo en este dispositivo.
Comentarios
Inicia sesión para comentar.
Todavía no hay comentarios. Sé la primera persona en opinar.