Map reduce

Map reduce

MapReduce

MapReduce est un framework de développement informatique, introduit par Google, dans lequel sont effectués des calculs parallèles, et souvent distribués, de données potentiellement très volumineuses (> 1 terabyte).

Les terminologies de "Map" et "Reduce", et leur idée générale, sont empruntées aux langages de programmation fonctionnelle utilisés pour leur construction (map et réduction de la programmation fonctionnelle et des langages de programmation tableau).

Le concept du framework MapReduce s'articule en deux étapes :

  • Dans l'étape Map le nœud à qui est soumis un problème, le découpe en sous-problèmes, et les délègue à d'autre nœuds (qui peuvent en faire de même récursivement). Les sous-problèmes sont ensuite traités par les différents noeud à l'aide de la fonction Map qui à un couple (clé, valeur) associe un ensemble de nouveaux couples (clé, valeur).
  • Vient ensuite l'étape Reduce, où les nœuds les plus bas font remonter leurs résultats au nœud parent qui les avait sollicités. Celui-ci calcule un résultat partiel à l'aide de la fonction Reduce (réduction) qui associe toutes les valeurs correspondant à la même clé à une unique paire (clé, valeur). Puis il remonte l'information à son tour.

À la fin du processus, le nœud d'origine peut recomposer une réponse au problème qui lui avait été soumis.

Il y a plusieurs implémentation de ce framework dans différents langages (c++, java, python, etc) et par de nombreux organismes (Google, Yahoo, etc).

Sommaire

Mapping et réduction

Une fonction map itère sur une liste d'éléments indépendants et accomplit une opération spécifique sur chaque élément. La liste des réponses est stockée séparément de la liste originale. Parce que chaque élément est calculé indépendamment et que la liste originale n'est pas modifiée, il est très facile de réaliser une opération map en parallèle. Sur du matériel approprié cela permet à des quantités extrêmement importantes de données d'être calculées en des temps très courts.

Par exemple, considérons une liste de notes d'examen, où chaque note est 1 point trop élevée. Une fonction map de s - 1 pourrait être appliquée sur chaque note s.

Une opération Reduce prend une liste et combine les éléments selon un algorithme particulier. Puisqu'un reduce se termine toujours par une seule réponse, elle n'est pas parallélisable par une fonction map, mais le grand nombre de calculs relativement indépendants permet que les fonctions reduce soient toujours utiles en environnements fortement parallèles.

Pour continuer avec l'exemple précédent, comment faire si l'on souhaite connaître la moyenne de la classe ? On peut définir une fonction de réduction qui diminue de moitié la liste par ajout d'une entrée dans la liste des voisins, récursivement, on continue jusqu'à ce qu'il y ait seulement une (grosse) entrée, et divise la somme totale par l'entrée originale d'éléments pour avoir la moyenne).

Distribution et fiabilité

MapReduce tire sa fiabilité de la répartition, sur chaque nœud du réseau, des opérations à appliquer au jeu de données; on s'attend à ce que chaque nœud retourne périodiquement le travail accompli et les modification de statut. Si un nœud ne retourne rien pendant cet intervalle, le nœud maître (similaire au serveur maître du Google File System) considère le nœud comme mort, et envoie les données assignées à ce nœud à d'autres nœuds. Les opérations individuelles utilisent des opérations atomiques pour les nommages des fichiers de sortie comme une vérification double pour s'assurer qu'il n'y a aucun conflit parallèle avec un thread en cours ; quand les fichiers sont renommés, il est aussi possible de les copier sous un autre nom en plus du nom de la tâche (permit pour les effets de bords).

Les opérations de réduction fonctionnent plus ou moins de la même manière, mais en raison de leurs propriétés inférieures concernant les opérations concurrentes, le nœud maître tente de programmer les opérations de réductions sur le même nœud, ou aussi proche possible du nœud détenant les données qui doivent être traitées. Cette propriété est préférée par Google car elle conserve la bande passante, ce que leurs réseaux internes n'ont pas beaucoup.

Utilisations

D'après Google, ils utilisent MapReduce dans un large éventail d'applications, dont "distributed grep, distributed sort, web link-graph reversal, term-vector per host, web access log stats inverted index construction, document clustering, machine learning, statistical machine translation…" (grep distribué, tri distribué, inversion de lien-graphique web, vecteur de terme par hôte, statistiques d'accès au web, construction d'index inversé, clustering de document, apprentissage machine, traduction machine statistique…). De manière plus significative, quand MapReduce fut fini, il a été utilisé pour complètement regénérer les index Internet de Google, et remplacer les vieux programmes ad hoc par la mise à jour d'index. MapReduce génère un large nombre d'intermédiaire, de fichiers temporaires, qui sont généralement géré par, et accédé à travers du, Google File System pour de meilleures performances.

Implémentations

  • Le framework de Google est codé en C++ avec des interfaces en Python et Java.
  • Le projet Nutch a développé une implémentation expérimentale de MapReduce : [1].
  • Le projet Hadoop est un projet libre développé en Java qui utilise une implémentation de MapReduce issu de Nutch

Références

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « MapReduce ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Map reduce de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Map — /map/, n. Walter, c1140 1209?, Welsh ecclesiastic, poet, and satirist. Also, Mapes /mayps, may peez/. * * * I Graphic representation, drawn to scale and usually on a flat surface, of features usually geographic, geologic, or geopolitical of an… …   Universalium

  • Map database management — stems from navigation units becoming more common in automotive vehicles (see Automotive navigation system). They serve to perform usual navigation functions, such as finding a route to a desired destination and guiding the driver to it or… …   Wikipedia

  • map — mappable, adj. mapper, n. /map/, n., v., mapped, mapping. n. 1. a representation, usually on a flat surface, as of the features of an area of the earth or a portion of the heavens, showing them in their respective forms, sizes, and relationships… …   Universalium

  • MAP — See modified American plan. * * * I Graphic representation, drawn to scale and usually on a flat surface, of features usually geographic, geologic, or geopolitical of an area of the Earth or of any celestial body. Globes are maps represented on… …   Universalium

  • Strategy map — In the realm of business, the concept of strategy maps was introduced in the U.S. by Robert S. Kaplan and David P. Norton. The standard reference is their book Strategy focused Organization .Citation last = Kaplan first = Robert S. author link =… …   Wikipedia

  • Turbine map — Each turbine in a gas turbine engine has an operating map. Complete maps are either based on turbine rig test results or are predicted by a special computer program. Alternatively, the map of a similar turbine can be suitably scaled. Description… …   Wikipedia

  • four-colour map problem — In topology, a long standing conjecture asserting that no more than four colours are required to shade in any map such that each adjacent region is coloured differently. First posed in 1852 by Francis Guthrie, a British math student, it was… …   Universalium

  • Growing self-organizing map — A growing self organizing map (GSOM) is a growing variant of the popular self organizing map (SOM). The GSOM was developed to address the issue of identifying a suitable map size in the SOM. It starts with a minimal number of nodes (usually 4)… …   Wikipedia

  • Cognitive map — Cognitive maps (also known as mental maps, mind maps, cognitive models, or mental models) are a type of mental processing composed of a series of psychological transformations by which an individual can acquire, code, store, recall, and decode… …   Wikipedia

  • The Pentagon's New Map — The Pentagon s New is a 2004 book by Thomas Barnett based around an earlier article he wrote for Esquire magazine. It outlines a new grand strategy for American foreign policy. It is an iteration of a PowerPoint presentation that Barnett has been …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”