Mise à jour : 19 novembre 2024
Contributeurs: Jim Holdsworth, Matthew Kosinski
MapReduce est un modèle de programmation qui utilise le traitement parallèle pour accélérer le traitement de données à grande échelle. MapReduce permet une évolutivité massive sur des centaines ou des milliers de serveurs au sein d’un cluster Hadoop.
Le nom « MapReduce » fait référence aux 2 tâches que le modèle effectue pour aider à « fragmenter » une tâche de traitement de données volumineuse en de nombreuses tâches plus petites qui peuvent s’exécuter plus rapidement en parallèle.
Le modèle de programmation MapReduce est l’un des principaux composants de traitement au cœur d’Apache Hadoop, un cadre des exigences open source soutenu par l’Apache Software Foundation et construit sur le langage de programmation Java.
Le modèle MapReduce peut également être utilisé en dehors de Hadoop.
Apprenez à trouver la base de données ouverte et fiable qui répond aux besoins de votre entreprise.
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.
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.
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.
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.
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 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.
Chaque réducteur transmet la production de son traitement à HDFS ou à un autre magasin de données.
Quelle que soit la quantité de données qu’une organisation souhaite analyser, les principes clés restent les mêmes.
Pour cet exemple, l’ensemble de données comprend les villes (les clés) et les températures quotidiennes correspondantes (les valeurs) enregistrées pour chaque ville. Un exemple de paire clé/valeur peut ressembler à ceci : <Toronto, 18>.
Les données sont réparties sur plusieurs fichiers. Chaque fichier peut inclure des données provenant de différentes villes, et il peut inclure plusieurs fois la même ville.
À partir de cet ensemble de données, l’utilisateur souhaite identifier la « température maximale » pour chaque ville au cours de la période suivie.
Voici une implémentation de MapReduce pour gérer cette tâche :
L'écosystème Hadoop est une suite de modules open source conçus pour fonctionner ensemble afin de promouvoir l'efficacité. Il existe des modules qui constituent le cadre des exigences de Hadoop, notamment MapReduce et trois autres :
HDFS est un système de fichiers distribués permettant de stocker des données d’application sur des milliers de serveurs standard.
HDFS est conçu pour assurer la tolérance aux pannes de Hadoop et fournir un accès rapide aux données. Par défaut, les blocs de données sont répliqués sur plusieurs nœuds au moment du chargement ou de l’écriture.
L'architecture HDFS comprend un NameNode pour gérer l'espace de noms du système de fichiers et l'accès aux fichiers, ainsi que plusieurs DataNodes pour gérer le stockage de données.
L'open source Apache Hadoop, YARN, est un cadre des exigences pour la planification des tâches et la gestion des ressources en cluster. Il prend en charge plusieurs workloads, telles que les requêtes SQL, la modélisation avancée et le streaming en temps réel.
Ce module est un ensemble de fonctionnalités et de bibliothèques de ressources qui prennent en charge d’autres modules Hadoop. Également connu sous le nom de Hadoop Core, il comprend de multiples ressources pour la reprise automatique en cas de défaillance, l’abstraction au niveau du système de fichiers et du système d’exploitation, les fichiers et les scripts Java Archive (JAR), et bien plus encore.
Outre le cadre Hadoop principal, l’écosystème Hadoop comprend également :
La programmation MapReduce offre plusieurs avantages qui peuvent aider les organisations à acquérir des informations précieuses à partir de l’analytique big data, notamment :
MapReduce peut traiter efficacement de nombreux cas d'utilisation simples, bien que les tâches de traitement de données complexes puissent s'exécuter plus rapidement sur d'autres applications. Voici quelques applications adaptées à l'approche de traitement parallèle de MapReduce :
Le paradigme de programmation MapReduce a été créé en 2004 par les informaticiens de Google Jeffery Dean et Sanjay Ghemawat. L’objectif du modèle MapReduce est de simplifier la transformation et l’analyse de grands jeux de données grâce à un traitement parallèle massif sur de grands clusters de matériel de base. Cela permet également aux programmeurs de se concentrer sur les algorithmes plutôt que sur la gestion des données.
Alors que Google a introduit le premier cadre des exigences MapReduce, Apache Hadoop MapReduce est peut-être le plus populaire.
MapReduce a joué un rôle clé dans l'avancement de l'analytique du big data, mais il présente des inconvénients. Par exemple, les données ne sont généralement pas conservées en mémoire par MapReduce, et la logique itérative n’est possible qu’en reliant les applications MapReduce. Ces facteurs augmentent la complexité et peuvent allonger les délais de traitement.
Alors que MapReduce reste largement utilisé, en particulier dans les systèmes héritage, de nombreuses organisations se tournent vers des cadres des exigences plus rapides ou plus spécialisés, tels qu’Apache Spark, pour les applications de big data.
Élaborez une stratégie de gestion des données qui élimine les silos, réduit la complexité et améliore la qualité des données pour offrir une expérience client et collaborateur exceptionnelle.
watsonx.data vous permet d’adapter le dimensionnement des analyses et de l’IA à toutes vos données, où qu’elles se trouvent, grâce à un entrepôt de données ouvert, hybride et gouverné.
Avec IBM Consulting, exploitez les données de votre entreprise et développez une organisation basée sur les informations pour tirer des avantages métier.
Découvrez les avantages d'un data lakehouse, notamment des données plus fiables et une exécution plus fiable des projets d'analytique et d'IA.
Guide du leader des données pour bâtir une organisation fondée sur les données afin de renforcer l'avantage commercial.
Apache Hadoop est un cadre logiciel open source qui permet un traitement distribué et fiable de grands ensembles de données à l’aide de modèles de programmation simples.