2009-04-01 20 views

Respuesta

5

Para problemas que requieren procesamiento y generación de grandes conjuntos de datos. Digamos que ejecuta una consulta de generación de intereses sobre todas las cuentas de un banco. Digamos procesar datos de auditoría para todas las transacciones que ocurrieron el año pasado en un banco. El mejor caso de uso es el de Google, que genera el índice de búsqueda para el motor de búsqueda de Google.

3

Cualquier cosa que implique realizar operaciones en un conjunto grande de datos, donde el problema se puede dividir en sub-problemas independientes más pequeños cuyos resultados se pueden agregar para producir la respuesta al problema más grande.

Un ejemplo trivial sería calcular la suma de un gran conjunto de números. Se divide el conjunto en conjuntos más pequeños, se calculan las sumas de esos conjuntos más pequeños en paralelo (lo que puede implicar dividirlos en conjuntos aún más pequeños), luego se suman esos resultados para llegar a la respuesta final.

5

Muchos problemas que son "embarazosamente paralelos" (¡excelente frase!) Pueden usar MapReduce. http://en.wikipedia.org/wiki/Embarrassingly_parallel

De este artículo .... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...

Doug Cutting, fundador de Hadoop (una implementación de código abierto de MapReduce) dice ... “Facebook utiliza Hadoop para analizar el comportamiento del usuario y la efectividad de los anuncios en el sitio "

y ..." el equipo de tecnología de The New York Times alquiló poder de cómputo en la nube de Amazon y usó Hadoop para convertir 11 millones de artículos archivados, que datan de 1851, a digital y buscable documentos. Dieron la vuelta en un solo día a un trabajo que de otro modo habría tenido en meses.”

9

En Map-Reduce for Machine Learning on Multicore Chu et al describen 'algoritmos que se ajustan al modelo de consulta Estadística se puede escribir en una cierta‘forma sumatoria’, lo que les permite ser fácilmente paralelizados en ordenadores multinúcleo.' Se implementan específicamente 10 algoritmos que incluyen, por ejemplo regresión lineal ponderada, k-Means, Naive Bayes y SVM, utilizando un marco map-reduce.

El proyecto Apache Mahout ha lanzado una implementación reciente de Hadoop (Java) de algunos métodos basada en las ideas de este documento.

2

También puede ver el videos @ Google, los estoy viendo yo mismo y los encuentro muy educativos.

3

La respuesta está en el nombre del algoritmo. MapReduce no es un trabajo de programación en paralelo de propósito general o un marco de ejecución por lotes, como sugieren algunas de las respuestas. Map Reduce es realmente útil cuando grandes conjuntos de datos que deben procesarse (fase de mapeo) y derivan ciertos atributos de allí, y luego deben resumirse en esos atributos derivados (Fase de reducción).

1

Esta pregunta fue hecha antes de tiempo. Desde 2009, ha habido un análisis teórico de los cálculos de MapReduce. Este documento de 2010 de Howard Karloff et al. formaliza MapReduce como una clase de complejidad de la misma manera que los teóricos estudian P y NP.Prueban algunas relaciones entre MapReduce y una clase llamada NC (que se puede considerar máquinas paralelas de memoria compartida o una cierta clase de circuitos restringidos). Pero la pieza principal del trabajo son sus definiciones formales.

Cuestiones relacionadas