Le paradigme MapReduce

Le paradigme MapReduce a été créé en 2003 pour permettre le traitement de grands ensembles de données de manière massivement parallèle. L'objectif du modèle MapReduce est de simplifier l'approche de la transformation et de l'analyse des grands ensembles de données, et de permettre aux développeurs de se concentrer sur les algorithmes plutôt que sur la gestion des données. Le modèle permet une mise en œuvre simple des algorithmes de données parallèles. Il existe un certain nombre d'implémentations de ce modèle, notamment l'approche de Google, programmée en C++, et l'implémentation Hadoop d'Apache, programmée en Java. Tous deux fonctionnent sur de grandes grappes de matériel de base dans un environnement pair à pair sans partage.

Le modèle MapReduce se compose de deux phases : la phase map et la phase reduce, exprimées respectivement par la fonction map et la fonction reduce. Les fonctions sont spécifiées par le programmeur et sont conçues pour opérer sur des paires clé/valeur en entrée et en sortie. Les clés et les valeurs peuvent être des types de données simples, comme un nombre entier, ou plus complexes, comme une transaction commerciale.
Mappe
La fonction map, également appelée tâche map, traite une seule paire clé/valeur en entrée et produit un ensemble de paires clé/valeur intermédiaires.
Réduire
La fonction de réduction, également appelée tâche de réduction, consiste à prendre toutes les paires clé/valeur produites dans la phase de mappage qui partagent la même clé intermédiaire et à produire zéro, un ou plusieurs éléments de données.

Notez que les fonctions map et reduce ne traitent pas de la parallélisation et de l'exécution des travaux MapReduce. C'est la responsabilité du modèle MapReduce, qui se charge automatiquement de la distribution des données d'entrée, ainsi que de la programmation et de la gestion des tâches de conversion et de réduction.