MapReduce-YARN
Introduction à YARN et MapReduce
dans Hadoop
Après HDFS, comment traiter les données distribuées ?
Rappel de HDFS
o Définition : HDFS (Hadoop Distributed File System) est un
système de fichiers distribué permettant de stocker de
grandes quantités de données de manière tolérante aux
pannes.
o Caractéristiques clés :
▪ Stockage distribué : Les fichiers sont découpés en
blocs et distribués sur plusieurs nœuds du cluster.
▪ Tolérance aux pannes : Les blocs sont répliqués pour
assurer la résilience.
Problématique après stockage des données
• Question importante :
• Une fois les données stockées, comment les traiter de manière efficace à
grande échelle ?
• Problème :
• Le stockage seul ne suffit pas. Il faut aussi une gestion des ressources et
un modèle de traitement distribué.
• Solution :
• YARN pour la gestion des ressources et MapReduce pour le traitement
parallèle des données.
Introduction à YARN
YARN (Yet Another Resource Negotiator) est le gestionnaire
de ressources de Hadoop.
Rôle de YARN :
• Gestion des ressources sur le cluster (mémoire, CPU, etc.).
• Équilibre de charge entre différentes applications.
• Exécution d’applications (MapReduce, Spark, etc.) en parallèle.
Composants clés de YARN :
• ResourceManager (RM) : Gère l'allocation des ressources à travers tout le cluster.
• NodeManager (NM) : Supervise l'utilisation des ressources locales sur chaque nœud.
• ApplicationMaster (AM) : Coordonne l'exécution des tâches d'une application spécifique.
MapReduce : Traitement des données sur
Hadoop
MapReduce est un modèle de programmation pour traiter de grandes quantités de données de
manière parallèle et distribuée.
Phases du modèle MapReduce :
• Phase de Map : Les données sont divisées en petites tâches et chaque tâche produit une paire clé-
valeur.
• Phase de Shuffle : Les résultats sont réorganisés par clé.
• Phase de Reduce : Les valeurs associées à une même clé sont agrégées pour produire un résultat
final.
Interaction entre YARN et MapReduce
MapReduce et YARN :
• YARN gère les ressources nécessaires pour exécuter le job MapReduce.
• ResourceManager attribue les ressources pour les étapes Map et Reduce.
• NodeManager exécute les containers où les tâches Map et Reduce se déroulent.
• Flux d'exécution : Après soumission du job MapReduce, YARN alloue les ressources, puis MapReduce traite les
données en utilisant ces ressources.
: Complémentarité entre
HDFS, YARN et MapReduce
Complémentarité entre HDFS, YARN et MapReduce :
• HDFS : Stockage des données de manière distribuée.
• YARN : Gestion dynamique des ressources pour exécuter des applications.
• MapReduce : Traitement parallèle des données stockées dans HDFS, en utilisant les ressources allouées par YARN.
→ HDFS, YARN et MapReduce forment un écosystème complet permettant de stocker, gérer et traiter des données
massives.
Hadoop: MapReduce
Hadoop: MapReduce
Hadoop: MapReduce
MapReduce: JobTracker
MapReduce: TaskTracker
MapReduce :
Modèle de programmation - Map
MapReduce :
Modèle de programmation - Map
MapReduce :
Modèle de programmation - Reduce
MapReduce : La phase de Map
MapReduce : La phase de Shuffle (réorganisation)
MapReduce : La phase de Reduce
MapReduce : La phase de Combine (optionnel)
Exemple MapReduce
Exemple MapReduce : La tâche Map
MapReduce: Code de base de la tâche Map
Exemple MapReduce: La tâche Shuffle
Exemple MapReduce: La tâche Reduce
MapReduce: SPLITS
MapReduce: Quelques Classes
MapReduce: Quelques Classes
MapReduce: RecordReader
MapReduce: InputFormat
MapReduce: Etapes d'exécution d'un job
MapReduce: Etapes d'exécution d'un job
MapReduce: Etapes d'exécution d'un job
MapReduce: Etapes d'exécution d'un job
MapReduce: Tolérance aux pannes
MapReduce 1: Maitre/Esclave
MapReduce 1: Responsabilités du JobTracker
MapReduce 1 : Limites
YARN (Yet Another Resource Negotiator)
YARN (Yet Another Resource Negotiator)
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn
YARN: Exécuter une application dans Yarn