Existe-t-il une analyse théorique qui décrit le type de problèmes que mapreduce peut résoudre ?
Réponses
Trop de publicités?Sur Map-Reduce pour l'apprentissage automatique sur multicoeur Chu et al décrivent "les algorithmes qui correspondent au modèle de requête statistique peuvent être écrits sous une certaine "forme de sommation", ce qui leur permet d'être facilement parallélisés sur des ordinateurs multicœurs". Ils implémentent spécifiquement 10 algorithmes incluant par exemple la régression linéaire pondérée, k-Means, Naive Bayes, et SVM, en utilisant un cadre map-reduce.
Le site Apache Mahout a publié une récente mise en œuvre Hadoop (Java) de certaines méthodes basées sur les idées de cet article.
Pour les problèmes nécessitant le traitement et la génération de grands ensembles de données. Par exemple, exécuter une requête de génération d'intérêts sur tous les comptes détenus par une banque. Par exemple, le traitement des données d'audit pour toutes les transactions qui ont eu lieu au cours de l'année écoulée dans une banque. Le meilleur cas d'utilisation est celui de Google - générer un index de recherche pour le moteur de recherche de Google.
De nombreux problèmes qui sont "Embarrassingly Parallel" (belle expression !) peuvent utiliser MapReduce. http://en.wikipedia.org/wiki/Embarrassingly_parallel
De cet article.... http://www.businessweek.com/magazine/content/07_52/b4064048925836.htm ...
Doug Cutting, fondateur de Hadoop (une implémentation open source de MapReduce) dit... "Facebook utilise Hadoop pour analyser le comportement des utilisateurs et l'efficacité des publicités sur le site"
et... "l'équipe technique du New York Times a loué de la puissance de calcul sur le cloud d'Amazon et a utilisé Hadoop pour convertir 11 millions d'articles archivés, remontant à 1851, en documents numériques et consultables. Ils ont réalisé en une seule journée un travail qui, autrement, aurait pris des mois."
Tout ce qui implique d'effectuer des opérations sur un grand ensemble de données, où le problème peut être décomposé en petits sous-problèmes indépendants dont les résultats peuvent ensuite être agrégés pour produire la réponse au grand problème.
Un exemple trivial serait de calculer la somme d'un énorme ensemble de chiffres. Vous divisez l'ensemble en plusieurs ensembles plus petits, vous calculez les sommes de ces ensembles plus petits en parallèle (ce qui peut impliquer de les diviser en ensembles encore plus petits), puis vous additionnez ces résultats pour obtenir la réponse finale.
La réponse se trouve en réalité dans le nom de l'algorithme. MapReduce n'est pas un travail de programmation parallèle d'usage général ou un cadre d'exécution par lots comme certaines réponses le suggèrent. Map Reduce est vraiment utile lorsque grand site les ensembles de données qui doivent être traités (phase de cartographie) et en déduire certains attributs, puis les résumer sur la base de ces attributs dérivés (phase de réduction).