Chapitre 5 LEcosystème Hadoop
Chapitre 5 LEcosystème Hadoop
Chapitre 5 LEcosystème Hadoop
Chapitre 5 :
L'écosystème Hadoop
2012 2020
Doug Cutting(
2011
employé Yahoo et HADOOP
developpeur de HADOOP 3.3.0
Nutch : Web 2006 HADOOP 2.0
Crawlers ) a Cutting/Yahoo HADOOP est 1.0
commencé a
ont renommé devenu Open
utilisé Mapreduce
leurs efforts
2004 pour l’indexation HADOOP Source
Apparition de
2003 Big Table
Google
Google a publie un
développé article sur
son GFS Mapreduce
2001
Programme
Programme Programme
• HDFS réplique ces données sur plusieurs noeuds pour réduire les
risques d’échecs des noeuds du cluster (fiabilité)
• Slave: DataNode
• Plusieurs par cluster a b a c
• Gére le stockage asocié aux noeuds b a b
d c c d
• Envoi périodiquement les rapports sur son état au NameNode
DataNodes
MSAKNI IMEN Hadoop
HDFS
Les blocs
• HDFS est conçu pour prendre en charge des fichiers très volumineux
• Chaque fichier est découpé en blocs
• Par défaut: 64MB
• Autres (exemple: IBM BigInsights : 128MB)
• Les blocs résident dans différents DataNode
• Dans les coulisses, 1 bloc dans le HDFS est pris en charge par plusieurs blocs de OS
64 MB Blocs HDFS
Blocs OS
64 MB 64 MB 22 MB
HDFS :
découper le fichier en bloc
Répartir ces blocs sur l'ensemble des DataNode
Répliquer ces blocs sur l'ensemble des DataNodes
Gérer les pannes (Plus on rajoute de machines plus on a le risque de pannes )
DN
DN
DN
MyData.txt
64 MB 64 MB 22 MB NameNode
NN
Etape 1: Map
18/02/2019 Miami Toys 25.99
02/03/2019 NYC Music 12.15
03/03/2019 Miami Clothes 50.00 Clé Valeur
03/03/2020 Miami Toys 25.20 DN Miami 50.00
03/03/2019 Miami Clothes 125.80 Miami 125.80
applications Mapreduce.
Frameworks M
Framework
Services permettant l'exécution des jobs
MapReduce, le Shuffle, le Sort.
Ressource Managment Ressource Managment
Infrastructure pour gérer les noeuds du cluster,
allouer des ressources et ordonnancer les jobs
MSAKNI IMEN Hadoop
Mapreduce V1(MRv1)
Démons
• Architecture Master / Slave
• Un seul master (JobTracker) contrôle l’exécution des tâches sur plusieurs noeuds(TaskTrackers).
• JobTracker
• Accepte les tâches MapReduce soumises par les clients.
• Envoyer les tâches Map et Reduce aux TaskTrackers.
• Conserver les tâches le plus proche possible des données (càd sur les machines physiques).
• Surveille les tâches et le statut du TaskTracker.
• TaskTracker
• Exécute les tâches Map et Reduce.
• Envoie les rapports de monitoring au JobTracker.
• Gère le stockage et la transmission des résultats (output) intermédiaires.
heartbeat
2 Echec du TaskTracker
TaskTracker
JVM fille
Fils
Noeud TaskTracker
30
3030
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec d’une fonction
• Si une fonction fille échoue, la JVM fille envoies un rapport au TaskTracker avant qu'elle quitte
et une autre fonction s’exécute.
• Si la fonction fille se bloque, elle sera détruite. Le JobTracker re-planifie la tâche sur une autre
machine..
• Si l’échec de la fonction persiste la tâche va échouer.
31
3131
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec du TaskTracker
• JobTracker ne reçoit aucun signal du TaskTracker depuis un moment.
• Supprime le TaskTracker du groupe de TaskTrackers pour planifier d’autres tâches.
32
3232
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec du JobTracker
• Point de défaillance unique.
• Echec du JobTracker Echec du job
33
3333
Mapreduce V1(MRv1)
Problèmes
• Le Job Tracker s'exécute sur une seul machine et fait plusieurs tâches( gestion de ressources,
monotoring, ordonnancement)
Problèmes de scalabilité: les nombreux DataNodes existants ne sont pas exploités et le
nombre de nœuds par cluster est limité à 4000.
• Si le Job Tacker tombe en panne tous les jobs doivent redémarrer
Problème de disponibilité : SPoF .
• Le nombre de map slots et reduce slots est prédifini
Problème d'exploitation : si on a plusieurs map jobs à exécutés et le map slots sont pleins , les
reduces slots ne peuvent pas être utilisés.
• Le job Tracker est fortement intégré à Map Reduce
Problème d'interopérabilité: impossible d'exécuter des applications non MapReduce ou HDFS
.
Application
Cliente
Node Manager
MyApp
Application
Master
Resource
Manager Node Manager Application
YourApp Master
Node Manager
MyApp
MSAKNI IMEN Hadoop
Mapreduce V2(MRv2)
Exécution d’un job MapReduce Data Node
Node Manager
Block 1
Application My Map Reduce
My
Cliente My MapReduce Data
Data Node
Node Manager
Allocation Block 2
My Map Reduce
Data Node
Resource
Demande Ressources Node Manager Application
Manager
Master
Data Node
Node Manager
Node Manager
Block 1
My MR
Application Map Task
Cliente My Map Reduce
Data Node
Data Node
Resource
Demande Node Manager Application
Manager
Ressources Master
(Mappers)
Data Node
Node Manager
Node Manager
Block 1
Application
Cliente My Map Reduce Data Node
44
L’écosystème Hadoop
Extensions
Sqoop (Cloudera) : Intégration SGBD-R
• Sqoop permet le transfert des données entre un cluster Hadoop et des bases de données relationnelles.
• Il permet d’importer/exporter des données depuis/vers Hadoop et Hive.
• Pour la manipulation des données, Sqoop utilise en autres MapReduce.
Apache Oozie (Yahoo) : Ordonnanceur
• Oozie est une solution de workflow (au sens scheduler d’exploitation) utilisée pour gérer et coordonner
les tâches de traitement de données à destination de Hadoop.
• Oozie s’intègre parfaitement avec l’écosystème Hadoop puisqu’il supporte les types de jobs suivant :
MapReduce ,Pig,Hive, Sqoop, etc.