My IBM Se connecter S’abonner
Qu'est-ce que MapReduce ?

Qu'est-ce que MapReduce ?

Utiliser MapReduce avec les produits IBM S’inscrire à la newsletter Think
Illustration avec collage de pictogrammes représentant un écran d’ordinateur, un serveur, des nuages et des points

Mise à jour : 19 novembre 2024
Contributeurs
: Jim Holdsworth, Matthew Kosinski

Qu'est-ce que MapReduce ?

Qu'est-ce que MapReduce ?

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.

  • La première est la « tâche de cartographie », qui prend un ensemble de données et le convertit en un autre ensemble de données formatées sous forme de paires clé/valeur, telles que les villes (clés) et les températures quotidiennes élevées (valeurs).

  • La deuxième est la « tâche de réduction », qui prend les sorties d’une tâche de mappage, agrège toutes les valeurs avec la même clé et traite les données pour produire un ensemble final de paires clé/valeur.

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.

L’IA impose de repenser la gestion des données

Apprenez à trouver la base de données ouverte et fiable qui répond aux besoins de votre entreprise.

Contenu connexe Obtenir le guide sur la modernisation des applications
Fonctionnement de MapReduce

Fonctionnement de MapReduce

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.

Un exemple de MapReduce

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 :

  1. Les fichiers de données contenant des informations sur la température alimentent l’application MapReduce en tant qu’entrée .

  2. Les fichiers sont divisés en tâches liées à la cartographie, chaque tâche étant attribuée à l’un des mappeurs.

  3. Les cartographes convertissent les données en paires clé/valeur.

  4. Les sorties de la carte sont mélangées et triées, de sorte que toutes les valeurs ayant la même clé de ville se retrouvent avec le même réducteur. Par exemple, toutes les valeurs de température pour Toronto vont à un réducteur, tandis qu'un autre réducteur regroupe toutes les valeurs pour Londres.

  5. Chaque réducteur traite ses données afin de déterminer la valeur de température la plus élevée pour chaque ville. Les données sont ensuite réduites à la paire clé/valeur la plus élevée pour chaque ville.

  6. Après la phase de réduction, les valeurs les plus élevées peuvent être collectées pour produire un résultat : <Tokyo, 38> <Londre, 27> <New York, 33> <Toronto, 32>.
MapReduce dans l’écosystème Hadoop

MapReduce dans l’écosystème Hadoop

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 :

Système de fichiers distribué Hadoop (HDFS)
 

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.

Yet Another Ressources Negotiator (YARN)
 

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.

Hadoop Common
 

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.

Autres modules
 

Outre le cadre Hadoop principal, l’écosystème Hadoop comprend également :

  • HBase (une base de données NoSQL non relationnelle)
  • Mahout et Spark MLlib (bibliothèques d’algorithmes pour le machine learning)
  • Oozie (planificateur de tâches)
  • Apache Hive et Apache Pig (outils de traitement de données basés sur des requêtes)
  • Solr et Lucene (pour la recherche et l'indexation)
  • Spark (moteur de traitement de données en mémoire) 
  • Zookeeper (coordinateur des clusters)
Avantages de MapReduce

Avantages de MapReduce

La programmation MapReduce offre plusieurs avantages qui peuvent aider les organisations à acquérir des informations précieuses à partir de l’analytique big data, notamment :

  • Évolutivité : MapReduce permet aux organisations de traiter des pétaoctets d'entrepôt de données dans le HDFS sur plusieurs serveurs ou nœuds.

  • Traitement plus rapide : avec un traitement parallèle et un déplacement de données minimal, MapReduce permet d’optimiser le traitement de données pour d’énormes volumes de données.

  • Simplicité : les développeurs peuvent écrire des applications MapReduce dans les langages de programmation de leur choix, notamment Java, C++ et Python.

  • Économies de coûts : en tant que programme open source, MapReduce peut permettre à une organisation d’économiser une partie du budget consacré aux dépenses logicielles. Cela dit, des coûts seront toujours associés aux infrastructures et au personnel d’ingénierie des données.
Cas d'utilisation de MapReduce

Cas d'utilisation de MapReduce

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 :

  • Intégration des données, où le cadre des exigences MapReduce est utilisé pour exécuter le processus d’extraction, de transformation et de chargement (ETL) afin de préparer les données pour l’analyse et le stockage.

  • Le traitement des images, où des tâches telles que la classification des images peuvent être divisées en jeux de données plus petits et traités en parallèle.

  • Log Analysis, par exemple l’identification des tendances en examinant les fichiers journaux des serveurs Web ou d’applications.

  • Machine learning (ML), où MapReduce peut aider aux tâches de formation ML, telles que le filtrage collaboratif, le clustering k-means et la régression linéaire.

  • Analyse des sentiments, où MapReduce peut vous aider à additionner les notes des clients sur un site Web ou à identifier des groupes de réponses, par exemple.

  • La tabulation, telle que le nombre de clients qui ont renouvelé leur compte, par pays, au cours de l’année écoulée.

  • La fouille de textes, telle que les tâches de comptage des mots qui suivent le nombre d’occurrences d’un mot dans un certain ensemble d’entrées, comme un tableau de commentaires.
Histoire de MapReduce

Histoire 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.

Solutions connexes

Solutions connexes

Logiciels et solutions de gestion des données

É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.

Découvrir les solutions de gestion des données
IBM watsonx.data

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é.

Découvrir watsonx.data
Services de conseil pour les données et les analyses

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écouvrir les services d’analytique
Ressources

Ressources

Gestion des données pour une IA et des analyses à l’échelle

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.

La différence par les données

Guide du leader des données pour bâtir une organisation fondée sur les données afin de renforcer l’avantage commercial.

Qu’est-ce qu’Apache Hadoop ?

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.

Passez à l’étape suivante

Faites évoluer les workloads d’IA pour toutes vos données n’importe où avec IBM watsonx.data, un entrepôt de données adapté à vos besoins basé sur une architecture data lakehouse ouverte.

Découvrir watsonx.data Réserver une démo en direct