MapReduce: Traitement Simplifié des données sur de Grands Clusters

MapReduce est un modèle de programmation et une implémentation associée pour le traitement et la génération de grands ensembles de données. Les utilisateurs spécifient une fonction de mappage qui traite une paire clé/valeur pour générer un ensemble de paires clé/valeur intermédiaires, et une fonction de réduction qui fusionne toutes les valeurs intermédiaires associées à la même clé intermédiaire. De nombreuses tâches du monde réel sont exprimables dans ce modèle, comme indiqué dans l’article.

Les programmes écrits dans ce style fonctionnel sont automatiquement parallélisés et exécutés sur un grand groupe de machines de base. Le système d’exécution s’occupe des détails du partitionnement des données d’entrée, de la planification de l’exécution du programme sur un ensemble de machines, de la gestion des pannes de machines et de la gestion de la communication inter-machines requise. Cela permet aux programmeurs sans aucune expérience avec les systèmes parallèles et distribués d’utiliser facilement les ressources d’un grand système distribué.

Notre implémentation de MapReduce s’exécute sur un grand cluster de machines de base et est hautement évolutive : un calcul MapReduce typique traite de nombreux téraoctets de données sur des milliers de machines. Les programmeurs trouvent le système facile à utiliser: des centaines de programmes MapReduce ont été implémentés et plus d’un millier de tâches MapReduce sont exécutées chaque jour sur les clusters de Google.

Diapositives HTML