fonctionnement globale de mapreduce

Présentation et fonctionnement de MapReduce

Une bonne compréhension de MapReduce implique la maitrise du fonctionnement de Hadoop et HDFS. Pour cela, ces deux articles sont obligatoires pour mieux appréhender la suite du cours.

Qu’est ce que MapReduce ?

MapReduce est un modèle de programmation conçu spécifiquement pour lire, traiter et écrire des volumes de données très importants. Les programmes adoptant ce modèle sont automatiquement parallélisés et exécutés sur des clusters (grappes) d’ordinateurs. MapReduce consiste en deux fonctions map() et reduce().

« map » est le nom d’une fonction de haut niveau qui applique une fonction donnée à chacun des éléments d’une liste et retourne une liste. Par exemple :

(mapcar #’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4)

« reduce » est le nom d’une fonction de haut niveau qui applique une fonction donnée à tous les éléments d’une liste et retourne une liste unique. Par exemple :

(reduce #’+ ‘(1 2 3 4)) => 10

MapReduce implémente les fonctionnalités suivantes :

  • Parallélisation automatique des programmes Hadoop.
    • HDFS se charge de la répartition et de la réplication des données ;
    • Le maître divise le travail en jobs parallèles et les répartit ;
    • Le maître collecte les résultats et gère les pannes des noeuds.
  • Gestion transparente du mode distribué.
  • Tolérance aux pannes.

Tout l’intérêt de ce modèle de programmation est de simplifier la vie du développeur Hadoop, en lui masquant le fonctionnement interne de Hadoop (parallélisation , tolérance aux pannes,…etc). Ainsi, le modèle de programmation permet au développeur de ne s’intéresser qu’à la partie algorithmique. Il transmet alors son programme MapReduce développé dans un langage de programmation au framework Hadoop pour l’exécution.

Fonctionnement de MapReduce

Un programme MapReduce se compose des trois parties suivantes

  • Le driver, qui s’exécute sur une machine client, est responsable d’initialiser le job puis de le soumettre pour exécution.
  • Le mapper est responsable de lire les données stockées sur disque et les traiter.
  • Le reducer est responsable de consolider les résultats issus du mapper puis de les écrire sur disque.

Laisser un commentaire