MapReduce: Procesamiento de datos simplificado en Clústeres grandes

MapReduce es un modelo de programación y una implementación asociada para procesar y generar grandes conjuntos de datos. Los usuarios especifican una función de mapa que procesa un par clave / valor para generar un conjunto de pares clave/valor intermedios, y una función de reducción que fusiona todos los valores intermedios asociados con la misma clave intermedia. Muchas tareas del mundo real son expresables en este modelo, como se muestra en el documento.

Los programas escritos en este estilo funcional se paralelizan automáticamente y se ejecutan en un gran grupo de máquinas básicas. El sistema de tiempo de ejecución se encarga de los detalles de la partición de los datos de entrada, la programación de la ejecución del programa en un conjunto de máquinas, el manejo de fallas de máquinas y la administración de la comunicación entre máquinas requerida. Esto permite a los programadores sin ninguna experiencia con sistemas paralelos y distribuidos utilizar fácilmente los recursos de un sistema distribuido grande.

Nuestra implementación de MapReduce se ejecuta en un gran clúster de máquinas básicas y es altamente escalable: una computación típica de MapReduce procesa muchos terabytes de datos en miles de máquinas. Los programadores encuentran el sistema fácil de usar: se han implementado cientos de programas MapReduce y se ejecutan más de mil trabajos MapReduce en los clústeres de Google todos los días.

Diapositivas HTML