Los puntos clave no están disponibles para este artículo en este momento.
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 combina todos los valores intermedios asociados con la misma clave intermedia. Muchas tareas del mundo real se pueden expresar en este modelo, como se muestra en el documento. Los programas escritos en este estilo funcional son paralelizados y ejecutados automáticamente en un gran cluster de máquinas comunes. El sistema en tiempo de ejecución se encarga de los detalles de particionamiento de los datos de entrada, programación de la ejecución del programa a través de un conjunto de máquinas, manejo de fallos de máquinas y gestión de la comunicación intermachine requerida. Esto permite a programadores sin experiencia en sistemas paralelos y distribuidos utilizar fácilmente los recursos de un gran sistema distribuido. Nuestra implementación de MapReduce se ejecuta en un gran cluster de máquinas comunes y es altamente escalable: un cálculo típico de MapReduce procesa muchos terabytes de datos en miles de máquinas. Los programadores encuentran que el sistema es fácil de usar: cientos de programas de MapReduce han sido implementados y más de mil trabajos de MapReduce se ejecutan en los clusters de Google todos los días.
Dean et al. (Sun,) estudiaron esta cuestión.