Map-Reduce
ENSEIGNANTE RESPONSABLE :NOUISSER AICHA
Map-Reduce
Patron d’architecture de développement
Permet de traiter des données volumineuses de manière parallèle et
distribuée
Les langages utilisés : Java, Python ou Ruby
Au lieu de parcourir le fichier séquentiellement (beaucoup de temps), il
est divisé en morceaux qui sont parcourus en parallèle.
Map-Reduce
Ce modèle se base sur 2 étapes :
Mapping (map tasks) : le développeur définit une fonction de mappage
dont le but sera d'analyser les données brutes contenues dans les
fichiers stockés sur HDFS pour en sortir les données correctement
formatées.
Réduction (reduce tasks) : cette tâche récupère les données
construites dans l'étape du mappage et s'occupe de les analyser dans
le but d'en extraire les informations les plus importantes.
Map-Reduce: Fonctionnement
Les Mappers sont de petits programmes qui commencent par traiter
chacun une petite partie des données
Ils fonctionnent en parallèle
Leurs sorties représentent les enregistrements intermédiaires : sous
forme d’un couple (clef, valeur)
Une étape de Mélange et Tri s’ensuit
• Mélange : Sélection des piles de fiches à partir des Mappers
• Tri: Rangement des piles par ordre au niveau de chaque Reducer
Chaque Reducer traite un ensemble d’enregistrements à la fois, pour
générer les résultats finaux
Map-Reduce:
MapReduce
Deux processus JobTracker et TaskTracker
MapReduce
JobTracker
o Planifie les taches,
o Affecte les tâches aux TaskTrackers.
o Gère les jobs MapReduce et surveille les progrès réalisés
o Récupère les erreurs, et redémarre les tâches lentes et les taches qui
ont échoué
TaskTracker
o Notifie périodiquement le JobTracker du niveau de progression
d’une tâche ou bien le notifie en cas d’erreur afin que celui-ci
puisse reprogrammer et assigner une nouvelle tâche
o S’exécute sur chacun des nœuds pour exécuter les vraies tâches de
MapeReduce
o Choisit en général de traiter (Map ou Reduce) un bloc sur la même
machine que lui
Gestion des ressources
MapReduce a un modèle de gestion de mémoire inflexible basé sur les
slot.
Chaque TaskTracker est configuré au démarrage pour avoir un nombre
bien déterminé de slots (map slot, reduce slot) pour l’exécution des
tâches
Une tache est exécutée dans un seul slot
Les slots sont configurés au démarrage pour avoir un maximum
d’espace mémoire
MapReduce
Planification /Scheduling – FIFO scheduler (avec priorités)
Les travaux MapReduce sont programmés pour s'exécuter dans l'ordre
où ils ont été mis en file d'attente, du premier au dernier, et compte
tenu de la priorité de la file d'attente.
Il existe cinq files d'attente prioritaires: très bas, bas, normal, élevé,
très élevé tente.
Les travaux dans la file d'attente de priorité très élevée sont exécutés
avant les travaux dans la file d'attente de priorité élevée, etc.
SPARK
Apache SPARK est un paradigme similaire à MAP-REDUCE
La phase SHUFFLE de SPARK est totalement en mémoire sans aucun
accès HDFS
Apache Spark est nettement plus rapide que MAP-REDUCE !!
Les développeurs de Spark expliquent que le produit peut exécuter des
tâches 100 fois plus vite que MapReduce en cas de traitement en
mémoire, et 10 fois plus vite sur disque.
Complémentarité SPARK /
MapReduce
MAP REDUCE est destiné pour le traitement par lots
alors que SPARK est mieux pour un composant en temps réel
Ils sont complémentaires et généralement utilisés ensemble