Les données d'exploration et de journaux de Google dépassaient ce qu'un seul serveur pouvait stocker ou traiter, et la réponse naturelle était un serveur plus grand et plus coûteux ou un programme parallèle sur mesure que personne ne voulait écrire.
La bibliothèque de Dean et Ghemawat, écrite pour la première fois en février 2003, permettait à un programmeur de fournir seulement deux fonctions ; l'environnement d'exécution découpait l'entrée, l'expédiait, triait par clé et relançait tout ce qui échouait.
Fin 2004, Google exécutait des centaines de programmes MapReduce distincts sur jusqu'à des dizaines de milliers de machines pour des tâches allant de Google News et Zeitgeist à de gros travaux de graphes et d'apprentissage automatique.
L'article, publié à OSDI 2004 puis dans Communications of the ACM, est devenu le modèle du traitement de big data et a été réimplémenté sous la forme du logiciel open source Hadoop, qui a fait de ce modèle un standard de l'industrie.
Déplacer le calcul vers les données et le scinder en map+reduce
Scinder une tâche en map et reduce permet à des ingénieurs ordinaires de paralléliser sans écrire de threads ni de passage de messages.
Garder les données sur la même machine que leur calcul évite de transférer des téraoctets sur le réseau.
Relancer les tâches map en échec fait se comporter une ferme de PC peu fiables comme une seule machine digne de confiance.
Lorsque les données sont trop volumineuses pour une seule machine, décomposer la tâche en éléments massivement parallèles et laisser un ordonnanceur masquer les défaillances matérielles, au lieu d'acheter une machine plus grande et plus coûteuse.
Suites
MapReduce est devenu le modèle de traitement par lots standard de Google et, via Hadoop, le moteur qui a établi l'ère du big data dans l'industrie. Google a ensuite ajouté des systèmes de plus haut niveau (FlumeJava, Dataflow) à mesure que le SQL interactif remplaçait le modèle de traitement par lots en deux étapes, et MapReduce lui-même a été éclipsé, mais son idée centrale selon laquelle une grande tâche peut tenir en deux fonctions est devenue permanente.
VÉRIFIEZ LES SOURCES
Les sources
- MapReduce: Simplified Data Processing on Large Clusters (OSDI 2004) USENIX · usenix.org
- Sorting the World: Google Invents New Way to Manage Data Wired · wired.com ·