MapReduce permet de diviser les projets de traitement de données en morceaux plus petits afin qu'ils puissent s'exécuter plus rapidement.
L’utilisation d’un processeur pour analyser un fichier volumineux avec des téraoctets ou des pétaoctets de données peut, par exemple, prendre 10 heures. Une tâche MapReduce peut diviser ce même fichier de données en 10 tâches qui s’exécutent en parallèle sur 10 processeurs. Ce travail ne prendra peut-être qu'une heure ou moins. Les données peuvent être agrégées à partir des nœuds de calcul distribués pour produire un résultat.
Si le mappage et la réduction sont les fonctions essentielles du modèle MapReduce, le processus global comprend quelques étapes supplémentaires.
Entrée
Une application MapReduce accepte des données d'entrée, qui peuvent inclure des données structurées ou des données non structurées. Les applications MapReduce fonctionnent généralement avec des fichiers d'entrée stockés dans le système de fichiers distribué Hadoop (HDFS), mais le modèle peut également fonctionner avec d'autres sources de données. (Pour en savoir plus, consultez « MapReduce dans l’écosystème Hadoop »).
Pour une tâche spécifique, le cadre des exigences MapReduce permet de sélectionner des serveurs distribués, de gérer les communications et les transferts de données, et de prendre en charge la tolérance aux pannes et la redondance.
Fractionnement
Les données d’entrée sont divisées en blocs plus petits. Ces blocs sont distribués vers des mappeurs (les fonctions qui effectuent le mappage à l’étape suivante) situés sur différents nœuds. Le cadre des exigences MapReduce vise une affectation à peu près uniforme des données entre les cartographes pour un équilibrage de charge efficace.
Cartographie
Sur chaque nœud, la fonction de carte traite les données qu’elle reçoit, les convertissant en paires clé/valeur.
Le nombre total de cartographes est déterminé dans le cadre des exigences Hadoop, en fonction du volume total de données et des blocs de mémoire disponibles sur chaque cartographe. Les paramètres pour les cartographes, les réducteurs et les formats de production peuvent être définis au sein du cluster Hadoop.
Shuffling
Le cadre Hadoop trie les productions de la carte et attribue toutes les paires clé/valeur avec la même « clé » (thème) au même réducteur. Par exemple, dans un ensemble de données sur des villes et leurs températures maximales quotidiennes, toutes les données avec la clé « Tokyo » seraient acheminées vers le même reducteur.
Le réducteur, comme son nom l'indique, est la fonction qui effectue l'étape de réduction.
Réduire
Réduire le traitement des paires clé/valeur émises par les cartographes. Cela peut impliquer la fusion, la tabulation ou l’exécution d’autres opérations sur les données, selon le type de traitement requis.
La cartographie et la réduction peuvent être effectués sur le même ensemble de serveurs, mais cela est facultatif.
Résultat
Chaque réducteur transmet la production de son traitement à HDFS ou à un autre magasin de données.