Apache MapReduce

Un paradigme de programmation qui permet l'extensibilité massive de données non structurées sur des centaines ou des milliers de serveurs de base dans un cluster Apache Hadoop.

Orange and blue technology background circuit board and code. 3d Illustration

Qu'est-ce que MapReduce ?

MapReduce est un paradigme de programmation qui permet une extensibilité massive sur des centaines ou des milliers de serveurs dans un cluster Hadoop. En tant que composant de traitement , MapReduce est le cœur d'Apache Hadoop. Le terme « MapReduce » fait référence à deux tâches séparées et distinctes que les programmes Hadoop exécutent. La première est la tâche de mappage qui convertit un jeu de données dans un autre, où les éléments individuels sont décomposés en tuples (paires clé/valeur).

La tâche de réduction utilise la sortie d'une mappe comme en entrée et combine ces tuples de données dans un jeu plus petit de tuples. Comme l'indique le nom MapReduce, le travail de réduction est toujours effectué après le travail de mappage.

La programmation MapReduce offre plusieurs avantages pour vous aider à obtenir des informations précieuses à partir de vos données Big Data :

  • Évolutivité. Les entreprises peuvent traiter des pétaoctets de données stockées dans le système de fichiers distribués Hadoop (HDFS).
  • Flexibilité. Hadoop permet d'accéder plus facilement à de multiples sources de données et à de multiples types de données.
  • Vitesse. Grâce au traitement parallèle et au déplacement minimal des données, Hadoop offre un traitement rapide de quantités massives de données.
  • Simple. Les développeurs peuvent écrire du code dans un choix de langages, notamment Java, C++ et Python.

Exemple MapReduce

Il s'agit d'un exemple simple MapReduce. Quelle que soit la quantité de données que vous devez analyser, les principes essentiels restent les mêmes.

Supposons que vous disposiez de cinq fichiers et que chaque fichier contienne deux colonnes (une clé et une valeur en termes Hadoop) qui représentent une ville et la température correspondante enregistrée dans cette ville pour les différents jours de mesure. La ville est la clé, et la température est la valeur. Par exemple : (Toronto, 20). Parmi toutes les données que nous avons collectées, vous voulez trouver la température maximale pour chaque ville dans tous les fichiers de données (notez que chaque fichier peut avoir la même ville représentée plusieurs fois).

En utilisant le cadre MapReduce, vous pouvez décomposer cette tâche en cinq tâches de mappe, où chaque tâche de mappage travaille sur l'un des cinq fichiers. La tâche de mappage parcourt les données et renvoie la température maximale pour chaque ville.

Par exemple, les résultats produits par une tâche de mappage pour les données ci-dessus se présente comme suit : (Toronto, 20) (Whitby, 25) (New York, 22) (Rome, 33)

Supposons que les quatre autres tâches de mappage (travaillant sur les quatre autres fichiers non représentés ici) aient produit les résultats intermédiaires suivants :

(Toronto, 18) (Whitby, 27) (New York, 32) (Rome, 37) (Toronto, 32) (Whitby, 20) (New York, 33) (Rome, 38) (Toronto, 22) (Whitby, 19) (New York, 20) (Rome, 31) (Toronto, 31) (Whitby, 22) (New York, 19) (Rome, 30)

Ces cinq flux de sortie seraient introduits dans les tâches de réduction, qui combinent les résultats d'entrée et produisent une seule valeur pour chaque ville, produisant un ensemble de résultats finaux comme suit : (Toronto, 32) (Whitby, 27) (New York, 33) (Rome, 38).

Par analogie, vous pouvez considérer les tâches de mappage et de réduction comme la manière dont un recensement était effectué à l'époque romaine, où le bureau de recensement envoyait ses employés dans chaque ville de l'empire. Chaque agent recenseur de chaque ville était chargé de compter le nombre d'habitants de la ville et de renvoyer ses résultats à la capitale. Là, les résultats de chaque ville étaient réduits à un seul compte (somme de toutes les villes) pour déterminer la population globale de l'empire. Cette mise en correspondance des personnes et des villes, en parallèle, puis la combinaison des résultats (réduction) est beaucoup plus efficace que l'envoi d'une seule personne pour compter chaque personne de l'empire en série.


Solutions connexes

Améliorez et accélérez vos analyses grâce aux solutions de Big Data d'IBM et de Cloudera.

IBM et Cloudera se sont associés pour proposer une distribution Hadoop de premier plan, de qualité professionnelle, comprenant un écosystème intégré de produits et de services pour accélérer les analyses à l'échelle.


Apache Hadoop

Exploitez la puissance du Big Data à l'aide d'une plateforme de stockage et de programmation open source et hautement évolutive. IBM propose des solutions et des services compatibles avec Hadoop pour vous aider à exploiter tous les types de données et à prendre de meilleures décisions fondées sur les données pour votre entreprise.


Lacs de données

Créez un lac de données basé sur Hadoop qui optimise le potentiel de vos données Hadoop. Améliorez la gestion, la gouvernance, l'accès et l'exploration du volume, de la vélocité et de la variété croissants des données grâce à l'écosystème de solutions et de produits d'IBM et de Cloudera.



Rester connecté

Communauté Hadoop Explorer Hadoop Blogues