Map y Reduce
Las funciones Map y Reduce están definidas ambas con respecto a datos estructurados en pares (clave, valor). Map toma uno de estos pares de datos con un tipo en un dominio de datos, y devuelve una lista de pares en un dominio diferente:
Map(k1,v1) -> list(k2,v2)
La función de mapeo es aplicada en paralelo para cada ítem en la entrada de datos.
Esto produce una lista de pares (k2,v2) por cada llamada. Después de eso, el framework de MapReduce junta todos los pares con la misma clave de todas las listas y los agrupa, creando un grupo por cada una de las diferentes claves generadas.
La función reduce es aplicada en paralelo para cada grupo, produciendo una colección de valores para cada dominio:
Reduce(k2, list (v2)) -> list(v2)
Cada llamada a Reduce típicamente produce un valor v2 o una llamada vacía, aunque una llamada puede retornar más de un valor.El retorno de todas esas llamadas se recoge como la lista de resultado deseado. Por lo tanto, el framework MapReduce transforma una lista de pares (clave, valor) en una lista de valores. Este comportamiento es diferente de la combinación "map and reduce" de programación funcional, que acepta una lista arbitraria de valores y devuelve un valor único que combina todos los valores devueltos por mapa.
Busqué algún libro que me pueda ayudar a entender estos conceptos y lo más factible que encontré fue este:
Writing and Querying MapReduce Views in CouchDB
http://www.amazon.com/exec/obidos/tg/detail/-/1449303129
Mi nominación de la semana es Abraham, ya que habló sobre Web Crawler y algunos conceptos no los sabía.
Fuente:
MapReduce : Wikipedia
No hay comentarios:
Publicar un comentario