Está en la página 1de 25

Modelo de Programación MapReduce

D.Sc. Alvaro Henry Mamani-Aliaga


Department of Computer Science
Ejemplo Clásico
Conteo de Palabras - WordCount
Un pequeño ejemplo
Conteo de palabras ~ WordCount

● Generar una lista de la frecuencia de las palabras en un conjunto de


archivos
Un pequeño ejemplo
Conteo de palabras ~ WordCount

● Generar una lista de la frecuencia de las palabras en un conjunto de


archivos
○ EL DETALLE: El conjunto de archivos tiene como tamaño TERABYTES
Un pequeño ejemplo

UNIVERSIDAD BIG
DATA
SCIENCE 2020 UNIVERSIDAD 2
BIG 1
DATA 2
WordCount
SCIENCE 2
2020 1
2022 1
UCSP DATA
SCIENCE 2022
Cómo lo solucionaría Ud.
Sin paralelismo
Asumiendo que se tiene una máquina con una memoria suficiente para (1 +
TB?)
y con paralelismo

Problemas: uso de una estructura de datos única y global

Recursos compartidos: secciones críticas


y con paralelismo
y con paralelismo
usando Hadoop :-)
Usando el modelo de programación MapReduce se puede resolver problemas
de la siguiente forma:

- Leer una gran cantidad de datos


- Aplicar una función Map: extraer alguna información de
valor
- Fase intermedia: Shuffle & sort
- Aplicación una función Reduce: reúne, compila, filtra,
transforma, …
- Grabar los resultados
vieja idea …. pero efectiva
MapReduce
● Un idea del paradigma funcional ~ no es una idea nueva.
● Probablemente un poco más de 40 años
● En Hadoop es la parte del framework responsable por el procesamiento
distribuido de grandes conjuntos de datos
● Modelo de programación
La naturaleza de MAP
Map en programación funcional

map({1,2,3,4}, (x2)) => {2,4,6,8}

Todos los elementos son procesados por un método y los elementos no se


afectan los unos a los otros
La naturaleza de Reduce
Reduce en programación funcional

reduce({1,2,3,4}, (x)) => {24}

Todos los elementos en la lista son procesados juntos

Tanto en Map como en Reduce: la entrada es fija (inmutable), y la salida es una


nueva lista.
El modelo de Programación
El paradigma MapReduce es adecuado para trabajar con grandes cantidades
de datos

Realiza computación sobre los datos (poco movimiento de datos)

Utiliza los bloques almacenados en el DFS, no requiere división de datos


La idea original (artículo de Google)
El proceso MapReduce

Group by Key
Idea general
WordCount ...
Pseudocódigo
Map en JAVA
Reduce en JAVA
Actividad
Explicar la solución de los siguiente problemas

Inverted index

Word Length Count


Modelo de Programación MapReduce
D.Sc. Alvaro Henry Mamani-Aliaga
Department of Computer Science

También podría gustarte