SlideShare una empresa de Scribd logo
1 de 39
Big Data
Mouna TORJMEN KHEMAKHEM
Ecole Nationale d’Ingénieurs de Sfax (ENIS)
2017-2018
Chapitre 2
Hadoop
Mouna TORJMEN KHEMAKHEM
Plan du chapitre
Présentation et Historique de Hadoop
HDFS
MAP-REDUCE
Architecture Hadoop
YARNYARN
Hadoop2
Mouna TORJMEN KHEMAKHEM
Projet open source d’Apache: http://hadoop.apache.org/
Système de fichiers distribué et scalable (HDFS)
Traitement distribué sur plusieurs nœuds
Ecrit en Java, portable
Conçu par Doug Cutting en 2004
Hadoop: Présentation (1/2)
Conçu par Doug Cutting en 2004
4444
Mouna TORJMEN KHEMAKHEM
Utilisation simple pour les développeurs:
développer seulement des tâches Map-Reduce
utilisation des interfaces simples à travers des librairies
langages multiples (Java, Python, C/C++...).
Hadoop: Présentation (2/2)
S‘occupe de toutes les problématiques liées au calcul distribué:
accès et partage des données
tolérance aux pannes
répartition des tâches aux différents nœuds du cluster
le développeur s’occupe seulement de la tâche Map-
Reduce.
5555
Mouna TORJMEN KHEMAKHEM
Hadoop : Historique (1/2)
2002: Doug Cutting (directeur archive.org) et Mike Cafarella
(étudiant) développent Nutch, un moteur de recherche Open Source
exploitant le calcul distribué.
L'implémentation peut tourner seulement sur quelques machines et a
plusieurs problèmes liés à l'accés et le partage de fichiers.
2003/2004: le département de recherche de Google publie deux2003/2004: le département de recherche de Google publie deux
whitepapers: (1) sur GFS (un système de fichier distribué) et (2) sur
le paradigme Map/Reduce pour le calcul distribué.
2004: Doug Cutting et Mike Cafarella développent un framework
inspiré des papiers de Google et portent leur projet Nutch sur ce
framework.
6666
Mouna TORJMEN KHEMAKHEM
Hadoop : Historique (2/2)
2006: Doug Cutting (de Yahoo) travaille sur une
amélioration de l’indexation du moteur de recherche de
Yahoo et créé une nouvelle version en tant que projet Open
Source de la fondation Apache. Ce projet est appelé
Hadoop : le nom d'un éléphant en peluche de son fils.
Un cluster peut comporter de 5 à 20 machines.
2008: Hadoop est utilisé par le moteur de recherche de
Yahoo et par d’autres départements de l'entreprise.
2011: Hadoop est utilisé par
plusieurs entreprises et universités dans le monde
Le cluster Yahoo comporte
42.000 machines.7777
Mouna TORJMEN KHEMAKHEM
Hadoop est composé de deux grandes parties :
Hadoop Distibuted File System – HDFS : destiné pour le
stockage distribué des données
Hadoop: Composants fondamentaux
Distributed Programing Framework - MapReduce : destiné
pour le traitement distribué des données.
Stockage Traitement
8888
Mouna TORJMEN KHEMAKHEM
• un système de fichiers distribué
• inspiré de GFS
• écrit en Java.
• tolérant aux pannes
• SGF du type Write Once Read Many (WORM) : on y
HDFS (Hadoop Distributed File System)
• SGF du type Write Once Read Many (WORM) : on y
écrit une fois le fichier, puis on y accède plusieurs fois.
• HDFS se base sur le principe de Maître/Esclave
9999
Mouna TORJMEN KHEMAKHEM
FichierdiviséenblocsFichierdiviséenblocs
Bloc 1Bloc 1
Bloc 2Bloc 2
DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3
NameNodeNameNode
Fonctionnement du HDFS
Secondary
NameNode
Secondary
NameNode
FichierdiviséenblocsFichierdiviséenblocs
Bloc 3Bloc 3
Bloc 2Bloc 2
Bloc 4Bloc 4
DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3
HDFS HDFS HDFS
Bloc 1Bloc 1 Bloc 2Bloc 2 Bloc 3Bloc 3 Bloc 4Bloc 4
Stockage et duplication de blocs en HDFS
10101010
Mouna TORJMEN KHEMAKHEM
Taille de blocs:
En système de fichier classique: 4 Ko
en HDFS:
64 Mo: par défaut
Fonctionnement du HDFS
64 Mo: par défaut
Possibilité de configuration en : 128 Mo, 256
Mo, 512 Mo ou 1 Go.
Réduire le temps d'accès à un bloc
11111111
Mouna TORJMEN KHEMAKHEM
Taille de blocs:
Fonctionnement du HDFS
12121212
Mouna TORJMEN KHEMAKHEM
• Duplication
En phase d'écriture, chaque bloc
correspondant au fichier est répliqué sur
des nœuds distincts du cluster.
En phase de lecture, si un bloc est
Fonctionnement du HDFS
En phase de lecture, si un bloc est
indisponible sur un nœud, des copies de
ce bloc seront disponibles sur d'autres
nœuds.
L’utilisateur peut facilement configurer
le nombre de réplication (par défaut 3).
13131313
Mouna TORJMEN KHEMAKHEM
NameNode: nœud maître
gère l'espace de noms, l'arborescence du système de fichiers et
les métadonnées des fichiers et des répertoires.
Il centralise la localisation des blocs de données répartis dans
le cluster.
Fonctionnement du HDFS
le cluster.
Il connait les DataNodes dans lesquels les blocs sont stockés
Les différents types de métadonnées :
liste des fichiers
liste des blocs pour chaque fichier
liste des DataNodes pour chaque bloc
Attributs de fichiers, dernier accès, nombre de réplication.
14141414
Mouna TORJMEN KHEMAKHEM
Secondary NameNode
Le NameNode est un point unique de défaillance (Single
Point of Failure): en cas de panne, perte des blocs d’un
fichier donné.
le NameNode secondaire vérifie périodiquement l’état du
Fonctionnement du HDFS
le NameNode secondaire vérifie périodiquement l’état du
NameNode principal et fait une copie des métadonnées
En cas de panne du NameNode principal, le NameNode
secondaire la remplace.
15151515
Mouna TORJMEN KHEMAKHEM
DataNode : nœud esclave
enregistre (écriture) et récupère (lecture) les blocs de
données.
En lecture, les DateNodes transmettent au client les blocs
correspondant au fichier grâce au NameNode.
Fonctionnement du HDFS
correspondant au fichier grâce au NameNode.
En écriture, les DataNodes retournent l’emplacement des
blocs créés au NameNode.
Chaque DataNode envoie périodiquement
au NameNode la liste des blocs de données qu'il contient.
16161616
Mouna TORJMEN KHEMAKHEM
Écriture d'un fichier en HDFS
17171717
Mouna TORJMEN KHEMAKHEM
Lecture d'un fichier en HDFS
18181818
Mouna TORJMEN KHEMAKHEM
Créer un dossier dans HDFS :
Commande : hadoop fs -mkdir
Exemple : hadoop fs -mkdir /user/monDossier
Lister le contenu d’un dossier dans HDFS:
Commande : hadoop fs –ls
Exemple : hadoop fs -ls /user/monDossier
Charger un ou plusieurs fichiers du local à HDFS:
Commande : hadoop fs -put
Quelques commande en HDFS
Commande : hadoop fs -put
Exemple : hadoop fs -put /home/monFichier.txt /user/monDossier
Exporter un ou plusieurs fichiers de HDFS au local:
Commande: hadoop fs -get
Exemple : hadoop fs -get /user/monDossier/monFichier.txt /home
Supprimer un fichier dans HDFS:
Commande : hadoop fs -rm
Exemple : hadoop fs -rm /user/monFichier.txt
D'autres commandes usuelles: -ls, -cp, -rmr, -du, etc...
19191919
Mouna TORJMEN KHEMAKHEM
MapReduce
MapReduce :
un modèle de programmation dédié pour la
lecture, le traitement et l’écriture de grandes
volumes de données.volumes de données.
garantit les fonctionnalités suivantes :
Parallélisation automatique des programmes à
exécuter
Gestion transparente du mode distribué.
Tolérance aux pannes.
20202020
Mouna TORJMEN KHEMAKHEM
Basé sur deux fonctions :
map() : applique une fonction donnée sur
chaque éléments d’une liste et retourne une
liste.
MapReduce
Exemple: (mapcar #’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4)
reduce(): applique une fonction donnée à tous
les éléments d’une liste et retourne une liste
unique.
Exemple: (reduce #’+ ‘(1 2 3 4)) => 10
21212121
Mouna TORJMEN KHEMAKHEM
•Le processus MapReduce est composé de 4 étapes:
– Fragmenter (split) les données en entrée en n partitions.
– Mapper chacun de ces partitions couples (clé , valeur).
– Grouper (shuffle) ces couples (clé , valeur) par clé.
– Réduire (reduce) les groupes indexés par clef à une unique
MapReduce
MounaTORJMEN KHEMAKHEM &Amal
ABID
– Réduire (reduce) les groupes indexés par clef à une unique
paire (clé, valeur).
22222222
Mouna TORJMEN KHEMAKHEM
•Résolution d’un problème avec MapReduce:
ProgrammeurProgrammeur
-Choix de la méthode de découpage des
données
-Définition de la clé à utiliser
-Développement de l’opération MAP
-Développement de l’opération REDUCE
MapReduce
HadoopHadoop
-Développement de l’opération REDUCE
-repartition de données
-distribution de calcul
-groupement par clé
…
23232323
Mouna TORJMEN KHEMAKHEM
• But: compter le nombre d’occurrences de chaque mot dans un
fichier texte.
• Données: un fichier texte sous la forme suivante:
Celui qui croyait
MapReduce-Exemple 1
• MAP/REDUCE: (clef, valeur)= (mot, 1)
Celui qui croyait
Ciel ciel croyait
Celui ciel qui
24242424
Mouna TORJMEN KHEMAKHEM
MapReduce-Exemple 1
MAP REDUCE
POUR MOT dans LIGNE, FAIRE :
GENERER COUPLE (MOT; 1)
TOTAL=0
RENVOYERTOTAL
TOTAL=0
POUR COUPLE dans GROUPE,
FAIRE:
TOTAL=TOTAL+1
RENVOYERTOTAL
25252525
Mouna TORJMEN KHEMAKHEM
• But: compter le nombre de visiteurs sur chacune des pages d'un
site Internet.
• Données: des fichiers de logs sous la forme suivante:
/index.html [19/Oct/2013:18:45:03 +0200]
/contact.html [19/Oct/2013:18:46:15 +0200]
MapReduce-Exemple 2
• MAP/REDUCE: (clef, valeur)= (URL, 1)
/contact.html [19/Oct/2013:18:46:15 +0200]
/news.php?id=5 [24/Oct/2013:18:13:02 +0200]
/news.php?id=4 [24/Oct/2013:18:13:12 +0200]
/news.php?id=18 [24/Oct/2013:18:14:31 +0200]
...etc...
26262626
Mouna TORJMEN KHEMAKHEM
• But: calculer le total des ventes par magasin (ville) pour
l’année courante
• Données: des fichiers sous la forme (jour ville produit prix):
01-01-2017 Sfax meuble 200
01-01-2017Tunis vetement 50
02-01-2017 Sfax jouet 20
MapReduce-Exemple 3
• MAP/REDUCE: (clef, valeur)= (magasin, prix)
02-01-2017 Sfax jouet 20
02-01-2017 Sousse vetement 80
02-01-2017Tunis jouet 50
27272727
Mouna TORJMEN KHEMAKHEM
Architecture de Hadoop
•Hadoop est basé sur deux serveurs (des daemons):
– Le JobTracker:
• Coordinateur des taches MapReduce sur le cluster : distribution des
opérations Map ou Reduce au TaskTracker.
• En communication avec le NameNode
Un seul JobTracker par cluster point unique de défaillance (Single Point
of Failure).of Failure).
– Le TaskTracker:
• Exécute les taches (Map ou Reduce)
• Envoie des notification au JobTracker (erreur, …)
• Communique avec un DataNode
Un TaskTracker sur chaque machine esclave du cluster.
28282828
Mouna TORJMEN KHEMAKHEM
Chaque TaskTracker signale son statut
continuellement par le biais de «
heartbeat ».
En cas de défaillance d'un TaskTracker
Architecture de Hadoop
En cas de défaillance d'un TaskTracker
(heartbeat manquant / tâche échouée),
le JobTracker redistribue la tâche à un
autre nœud.
29292929
Mouna TORJMEN KHEMAKHEM
JobTrackerJobTracker
Architecture de Hadoop
Name NodeName Node
Couche MapReduce
Couche HDFS
Task
Tracker
Task
Tracker
Data NodeData Node
Task
Tracker
Task
Tracker
Data NodeData Node
Couche MapReduce
Couche HDFS
30303030
Mouna TORJMEN KHEMAKHEM
Architecture de Hadoop
31313131
Mouna TORJMEN KHEMAKHEM
Evolution de MapReduce:YARN
• YARN (Yet-Another-Resource-Negotiator) :
– Séparation entre la gestion des ressources et la gestion des
tâches Map/Reduce
–Allocation des ressources (CPU, mémoire, …) aux
applications s’exécutant sur les nœuds à la demande.applications s’exécutant sur les nœuds à la demande.
32323232
Mouna TORJMEN KHEMAKHEM
Ressource Manager (RM)
-s’exécute sur le nœud master
-ordonnanceur de ressources
-s’occupe de gestion de ressources entre plusieurs applications
Application Master (AM)
-un seul AM par application
Architecture de YARN
JobTracker
RessourceManager
ApplicationMaster AM AM
-un seul AM par application
-s’exécute sur un container
Container
-créé par le Resource Manager à la demande
-s’occupe de l’allocation de ressources sur le noud esclave
33333333
Mouna TORJMEN KHEMAKHEM
Le NodeManager (NM)
• S’exécute sur un noeud esclave
• En communication avec le Ressource Manager
Architecture de YARN
RessourceManager
ApplicationMasterAM AM NodeManager NM NM
34343434
Mouna TORJMEN KHEMAKHEM
Architecture de YARN
Exécution d’une application
35353535
Mouna TORJMEN KHEMAKHEM
Evolution de HDFS : HDFS 2
1. Le SPOF du Namenode a disparu
• Dans Hadoop 1: un seul namenode un SPOF (Single Point Of Failure).
• Dans Hadoop 2: deux namenodes Si le Namenode principal tombe en panne, le
Namenode secondaire le remplace.
2. La fédération HDFS
Un namenode correspond à un espace de nommage (namespace).
• Dans Hadoop1: un seul namenode par cluster.
• Dans Hadoop2: plusieurs namenodes et donc plusieurs namespace sur un même
cluster.
36363636
Mouna TORJMEN KHEMAKHEM
Evolution de Hadoop: Hadoop 2
37373737
Mouna TORJMEN KHEMAKHEM
Evolution de Hadoop: Hadoop 2
MounaTORJMEN KHEMAKHEM38383838
Mouna TORJMEN KHEMAKHEM
Erasure coding pour plus de résilience
Intégration du technique erasure coding à HDFS pour améliorer la
récupération et la fiabilité des données
UnYARN renforcé et plus étendu
amélioration des capacités de scalabilité
des applications distribuées sur plusieurs milliers de nœuds d’un
Evolution de Hadoop: Hadoop 3
des applications distribuées sur plusieurs milliers de nœuds d’un
cluster
39393939
Mouna TORJMEN KHEMAKHEM

Más contenido relacionado

La actualidad más candente

BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introductionMouna Torjmen
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4JLilia Sfaxi
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2Mehdi TAZI
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Lilia Sfaxi
 
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDI
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDIPrésentation pfe Big Data Hachem SELMI et Ahmed DRIDI
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDIHaShem Selmi
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 

La actualidad más candente (20)

Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Hadoop
HadoopHadoop
Hadoop
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Chapitre 3 spark
Chapitre 3 sparkChapitre 3 spark
Chapitre 3 spark
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Chapitre1 introduction
Chapitre1 introductionChapitre1 introduction
Chapitre1 introduction
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Une introduction à MapReduce
Une introduction à MapReduceUne introduction à MapReduce
Une introduction à MapReduce
 
Introduction à la big data V2
Introduction à la big data V2Introduction à la big data V2
Introduction à la big data V2
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture Thinking Big - Big data: principes et architecture
Thinking Big - Big data: principes et architecture
 
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDI
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDIPrésentation pfe Big Data Hachem SELMI et Ahmed DRIDI
Présentation pfe Big Data Hachem SELMI et Ahmed DRIDI
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 

Similar a Chapitre 2 hadoop

NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxEddySHANGA
 
Hadoop MapReduce.docx
Hadoop  MapReduce.docxHadoop  MapReduce.docx
Hadoop MapReduce.docxIssamHamdi
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Hamza Ben Marzouk
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in ParisTed Drake
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopBenoît de CHATEAUVIEUX
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptxbely26
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draftEric Papet
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfsalmanakbi
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesSofian Djamaa
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
HDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyHDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyOlivier DASINI
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataArrow Group
 

Similar a Chapitre 2 hadoop (20)

Hadoop
HadoopHadoop
Hadoop
 
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptxNOTES DE BIG DATA L 3 INFO DUS 2024.pptx
NOTES DE BIG DATA L 3 INFO DUS 2024.pptx
 
Hadoop MapReduce.docx
Hadoop  MapReduce.docxHadoop  MapReduce.docx
Hadoop MapReduce.docx
 
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
Présentation Hadoop SECURINETS INSAT (MAP & REDUCE )
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
Hadoop
HadoopHadoop
Hadoop
 
Hadoop Introduction in Paris
Hadoop Introduction in ParisHadoop Introduction in Paris
Hadoop Introduction in Paris
 
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à HadoopCasablanca Hadoop & Big Data Meetup - Introduction à Hadoop
Casablanca Hadoop & Big Data Meetup - Introduction à Hadoop
 
Présentation_HADOOP.pptx
Présentation_HADOOP.pptxPrésentation_HADOOP.pptx
Présentation_HADOOP.pptx
 
Hdfs
HdfsHdfs
Hdfs
 
Aqui hadoop draft
Aqui hadoop draftAqui hadoop draft
Aqui hadoop draft
 
ch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdfch2-hadoop-L3-2023-4p (1).pdf
ch2-hadoop-L3-2023-4p (1).pdf
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Hadoop
HadoopHadoop
Hadoop
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop Performances
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
HDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien HardyHDFS HA : Stockage à haute disponibilité par Damien Hardy
HDFS HA : Stockage à haute disponibilité par Damien Hardy
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 

Más de Mouna Torjmen

POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java IntroductionMouna Torjmen
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismeMouna Torjmen
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
Apprentissage Par Projet APP
Apprentissage Par Projet APPApprentissage Par Projet APP
Apprentissage Par Projet APPMouna Torjmen
 

Más de Mouna Torjmen (9)

POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
TIC & E-Learning
TIC & E-LearningTIC & E-Learning
TIC & E-Learning
 
Apprentissage Par Projet APP
Apprentissage Par Projet APPApprentissage Par Projet APP
Apprentissage Par Projet APP
 
Chapitre 4 no sql
Chapitre 4 no sqlChapitre 4 no sql
Chapitre 4 no sql
 

Chapitre 2 hadoop

  • 1. Big Data Mouna TORJMEN KHEMAKHEM Ecole Nationale d’Ingénieurs de Sfax (ENIS) 2017-2018
  • 3. Plan du chapitre Présentation et Historique de Hadoop HDFS MAP-REDUCE Architecture Hadoop YARNYARN Hadoop2 Mouna TORJMEN KHEMAKHEM
  • 4. Projet open source d’Apache: http://hadoop.apache.org/ Système de fichiers distribué et scalable (HDFS) Traitement distribué sur plusieurs nœuds Ecrit en Java, portable Conçu par Doug Cutting en 2004 Hadoop: Présentation (1/2) Conçu par Doug Cutting en 2004 4444 Mouna TORJMEN KHEMAKHEM
  • 5. Utilisation simple pour les développeurs: développer seulement des tâches Map-Reduce utilisation des interfaces simples à travers des librairies langages multiples (Java, Python, C/C++...). Hadoop: Présentation (2/2) S‘occupe de toutes les problématiques liées au calcul distribué: accès et partage des données tolérance aux pannes répartition des tâches aux différents nœuds du cluster le développeur s’occupe seulement de la tâche Map- Reduce. 5555 Mouna TORJMEN KHEMAKHEM
  • 6. Hadoop : Historique (1/2) 2002: Doug Cutting (directeur archive.org) et Mike Cafarella (étudiant) développent Nutch, un moteur de recherche Open Source exploitant le calcul distribué. L'implémentation peut tourner seulement sur quelques machines et a plusieurs problèmes liés à l'accés et le partage de fichiers. 2003/2004: le département de recherche de Google publie deux2003/2004: le département de recherche de Google publie deux whitepapers: (1) sur GFS (un système de fichier distribué) et (2) sur le paradigme Map/Reduce pour le calcul distribué. 2004: Doug Cutting et Mike Cafarella développent un framework inspiré des papiers de Google et portent leur projet Nutch sur ce framework. 6666 Mouna TORJMEN KHEMAKHEM
  • 7. Hadoop : Historique (2/2) 2006: Doug Cutting (de Yahoo) travaille sur une amélioration de l’indexation du moteur de recherche de Yahoo et créé une nouvelle version en tant que projet Open Source de la fondation Apache. Ce projet est appelé Hadoop : le nom d'un éléphant en peluche de son fils. Un cluster peut comporter de 5 à 20 machines. 2008: Hadoop est utilisé par le moteur de recherche de Yahoo et par d’autres départements de l'entreprise. 2011: Hadoop est utilisé par plusieurs entreprises et universités dans le monde Le cluster Yahoo comporte 42.000 machines.7777 Mouna TORJMEN KHEMAKHEM
  • 8. Hadoop est composé de deux grandes parties : Hadoop Distibuted File System – HDFS : destiné pour le stockage distribué des données Hadoop: Composants fondamentaux Distributed Programing Framework - MapReduce : destiné pour le traitement distribué des données. Stockage Traitement 8888 Mouna TORJMEN KHEMAKHEM
  • 9. • un système de fichiers distribué • inspiré de GFS • écrit en Java. • tolérant aux pannes • SGF du type Write Once Read Many (WORM) : on y HDFS (Hadoop Distributed File System) • SGF du type Write Once Read Many (WORM) : on y écrit une fois le fichier, puis on y accède plusieurs fois. • HDFS se base sur le principe de Maître/Esclave 9999 Mouna TORJMEN KHEMAKHEM
  • 10. FichierdiviséenblocsFichierdiviséenblocs Bloc 1Bloc 1 Bloc 2Bloc 2 DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3 NameNodeNameNode Fonctionnement du HDFS Secondary NameNode Secondary NameNode FichierdiviséenblocsFichierdiviséenblocs Bloc 3Bloc 3 Bloc 2Bloc 2 Bloc 4Bloc 4 DataNode 1DataNode 1 DataNode 2DataNode 2 DataNode 3DataNode 3 HDFS HDFS HDFS Bloc 1Bloc 1 Bloc 2Bloc 2 Bloc 3Bloc 3 Bloc 4Bloc 4 Stockage et duplication de blocs en HDFS 10101010 Mouna TORJMEN KHEMAKHEM
  • 11. Taille de blocs: En système de fichier classique: 4 Ko en HDFS: 64 Mo: par défaut Fonctionnement du HDFS 64 Mo: par défaut Possibilité de configuration en : 128 Mo, 256 Mo, 512 Mo ou 1 Go. Réduire le temps d'accès à un bloc 11111111 Mouna TORJMEN KHEMAKHEM
  • 12. Taille de blocs: Fonctionnement du HDFS 12121212 Mouna TORJMEN KHEMAKHEM
  • 13. • Duplication En phase d'écriture, chaque bloc correspondant au fichier est répliqué sur des nœuds distincts du cluster. En phase de lecture, si un bloc est Fonctionnement du HDFS En phase de lecture, si un bloc est indisponible sur un nœud, des copies de ce bloc seront disponibles sur d'autres nœuds. L’utilisateur peut facilement configurer le nombre de réplication (par défaut 3). 13131313 Mouna TORJMEN KHEMAKHEM
  • 14. NameNode: nœud maître gère l'espace de noms, l'arborescence du système de fichiers et les métadonnées des fichiers et des répertoires. Il centralise la localisation des blocs de données répartis dans le cluster. Fonctionnement du HDFS le cluster. Il connait les DataNodes dans lesquels les blocs sont stockés Les différents types de métadonnées : liste des fichiers liste des blocs pour chaque fichier liste des DataNodes pour chaque bloc Attributs de fichiers, dernier accès, nombre de réplication. 14141414 Mouna TORJMEN KHEMAKHEM
  • 15. Secondary NameNode Le NameNode est un point unique de défaillance (Single Point of Failure): en cas de panne, perte des blocs d’un fichier donné. le NameNode secondaire vérifie périodiquement l’état du Fonctionnement du HDFS le NameNode secondaire vérifie périodiquement l’état du NameNode principal et fait une copie des métadonnées En cas de panne du NameNode principal, le NameNode secondaire la remplace. 15151515 Mouna TORJMEN KHEMAKHEM
  • 16. DataNode : nœud esclave enregistre (écriture) et récupère (lecture) les blocs de données. En lecture, les DateNodes transmettent au client les blocs correspondant au fichier grâce au NameNode. Fonctionnement du HDFS correspondant au fichier grâce au NameNode. En écriture, les DataNodes retournent l’emplacement des blocs créés au NameNode. Chaque DataNode envoie périodiquement au NameNode la liste des blocs de données qu'il contient. 16161616 Mouna TORJMEN KHEMAKHEM
  • 17. Écriture d'un fichier en HDFS 17171717 Mouna TORJMEN KHEMAKHEM
  • 18. Lecture d'un fichier en HDFS 18181818 Mouna TORJMEN KHEMAKHEM
  • 19. Créer un dossier dans HDFS : Commande : hadoop fs -mkdir Exemple : hadoop fs -mkdir /user/monDossier Lister le contenu d’un dossier dans HDFS: Commande : hadoop fs –ls Exemple : hadoop fs -ls /user/monDossier Charger un ou plusieurs fichiers du local à HDFS: Commande : hadoop fs -put Quelques commande en HDFS Commande : hadoop fs -put Exemple : hadoop fs -put /home/monFichier.txt /user/monDossier Exporter un ou plusieurs fichiers de HDFS au local: Commande: hadoop fs -get Exemple : hadoop fs -get /user/monDossier/monFichier.txt /home Supprimer un fichier dans HDFS: Commande : hadoop fs -rm Exemple : hadoop fs -rm /user/monFichier.txt D'autres commandes usuelles: -ls, -cp, -rmr, -du, etc... 19191919 Mouna TORJMEN KHEMAKHEM
  • 20. MapReduce MapReduce : un modèle de programmation dédié pour la lecture, le traitement et l’écriture de grandes volumes de données.volumes de données. garantit les fonctionnalités suivantes : Parallélisation automatique des programmes à exécuter Gestion transparente du mode distribué. Tolérance aux pannes. 20202020 Mouna TORJMEN KHEMAKHEM
  • 21. Basé sur deux fonctions : map() : applique une fonction donnée sur chaque éléments d’une liste et retourne une liste. MapReduce Exemple: (mapcar #’round ‘(1.3 2.7 3.4 4.5)) => (1 3 3 4) reduce(): applique une fonction donnée à tous les éléments d’une liste et retourne une liste unique. Exemple: (reduce #’+ ‘(1 2 3 4)) => 10 21212121 Mouna TORJMEN KHEMAKHEM
  • 22. •Le processus MapReduce est composé de 4 étapes: – Fragmenter (split) les données en entrée en n partitions. – Mapper chacun de ces partitions couples (clé , valeur). – Grouper (shuffle) ces couples (clé , valeur) par clé. – Réduire (reduce) les groupes indexés par clef à une unique MapReduce MounaTORJMEN KHEMAKHEM &Amal ABID – Réduire (reduce) les groupes indexés par clef à une unique paire (clé, valeur). 22222222 Mouna TORJMEN KHEMAKHEM
  • 23. •Résolution d’un problème avec MapReduce: ProgrammeurProgrammeur -Choix de la méthode de découpage des données -Définition de la clé à utiliser -Développement de l’opération MAP -Développement de l’opération REDUCE MapReduce HadoopHadoop -Développement de l’opération REDUCE -repartition de données -distribution de calcul -groupement par clé … 23232323 Mouna TORJMEN KHEMAKHEM
  • 24. • But: compter le nombre d’occurrences de chaque mot dans un fichier texte. • Données: un fichier texte sous la forme suivante: Celui qui croyait MapReduce-Exemple 1 • MAP/REDUCE: (clef, valeur)= (mot, 1) Celui qui croyait Ciel ciel croyait Celui ciel qui 24242424 Mouna TORJMEN KHEMAKHEM
  • 25. MapReduce-Exemple 1 MAP REDUCE POUR MOT dans LIGNE, FAIRE : GENERER COUPLE (MOT; 1) TOTAL=0 RENVOYERTOTAL TOTAL=0 POUR COUPLE dans GROUPE, FAIRE: TOTAL=TOTAL+1 RENVOYERTOTAL 25252525 Mouna TORJMEN KHEMAKHEM
  • 26. • But: compter le nombre de visiteurs sur chacune des pages d'un site Internet. • Données: des fichiers de logs sous la forme suivante: /index.html [19/Oct/2013:18:45:03 +0200] /contact.html [19/Oct/2013:18:46:15 +0200] MapReduce-Exemple 2 • MAP/REDUCE: (clef, valeur)= (URL, 1) /contact.html [19/Oct/2013:18:46:15 +0200] /news.php?id=5 [24/Oct/2013:18:13:02 +0200] /news.php?id=4 [24/Oct/2013:18:13:12 +0200] /news.php?id=18 [24/Oct/2013:18:14:31 +0200] ...etc... 26262626 Mouna TORJMEN KHEMAKHEM
  • 27. • But: calculer le total des ventes par magasin (ville) pour l’année courante • Données: des fichiers sous la forme (jour ville produit prix): 01-01-2017 Sfax meuble 200 01-01-2017Tunis vetement 50 02-01-2017 Sfax jouet 20 MapReduce-Exemple 3 • MAP/REDUCE: (clef, valeur)= (magasin, prix) 02-01-2017 Sfax jouet 20 02-01-2017 Sousse vetement 80 02-01-2017Tunis jouet 50 27272727 Mouna TORJMEN KHEMAKHEM
  • 28. Architecture de Hadoop •Hadoop est basé sur deux serveurs (des daemons): – Le JobTracker: • Coordinateur des taches MapReduce sur le cluster : distribution des opérations Map ou Reduce au TaskTracker. • En communication avec le NameNode Un seul JobTracker par cluster point unique de défaillance (Single Point of Failure).of Failure). – Le TaskTracker: • Exécute les taches (Map ou Reduce) • Envoie des notification au JobTracker (erreur, …) • Communique avec un DataNode Un TaskTracker sur chaque machine esclave du cluster. 28282828 Mouna TORJMEN KHEMAKHEM
  • 29. Chaque TaskTracker signale son statut continuellement par le biais de « heartbeat ». En cas de défaillance d'un TaskTracker Architecture de Hadoop En cas de défaillance d'un TaskTracker (heartbeat manquant / tâche échouée), le JobTracker redistribue la tâche à un autre nœud. 29292929 Mouna TORJMEN KHEMAKHEM
  • 30. JobTrackerJobTracker Architecture de Hadoop Name NodeName Node Couche MapReduce Couche HDFS Task Tracker Task Tracker Data NodeData Node Task Tracker Task Tracker Data NodeData Node Couche MapReduce Couche HDFS 30303030 Mouna TORJMEN KHEMAKHEM
  • 32. Evolution de MapReduce:YARN • YARN (Yet-Another-Resource-Negotiator) : – Séparation entre la gestion des ressources et la gestion des tâches Map/Reduce –Allocation des ressources (CPU, mémoire, …) aux applications s’exécutant sur les nœuds à la demande.applications s’exécutant sur les nœuds à la demande. 32323232 Mouna TORJMEN KHEMAKHEM
  • 33. Ressource Manager (RM) -s’exécute sur le nœud master -ordonnanceur de ressources -s’occupe de gestion de ressources entre plusieurs applications Application Master (AM) -un seul AM par application Architecture de YARN JobTracker RessourceManager ApplicationMaster AM AM -un seul AM par application -s’exécute sur un container Container -créé par le Resource Manager à la demande -s’occupe de l’allocation de ressources sur le noud esclave 33333333 Mouna TORJMEN KHEMAKHEM
  • 34. Le NodeManager (NM) • S’exécute sur un noeud esclave • En communication avec le Ressource Manager Architecture de YARN RessourceManager ApplicationMasterAM AM NodeManager NM NM 34343434 Mouna TORJMEN KHEMAKHEM
  • 35. Architecture de YARN Exécution d’une application 35353535 Mouna TORJMEN KHEMAKHEM
  • 36. Evolution de HDFS : HDFS 2 1. Le SPOF du Namenode a disparu • Dans Hadoop 1: un seul namenode un SPOF (Single Point Of Failure). • Dans Hadoop 2: deux namenodes Si le Namenode principal tombe en panne, le Namenode secondaire le remplace. 2. La fédération HDFS Un namenode correspond à un espace de nommage (namespace). • Dans Hadoop1: un seul namenode par cluster. • Dans Hadoop2: plusieurs namenodes et donc plusieurs namespace sur un même cluster. 36363636 Mouna TORJMEN KHEMAKHEM
  • 37. Evolution de Hadoop: Hadoop 2 37373737 Mouna TORJMEN KHEMAKHEM
  • 38. Evolution de Hadoop: Hadoop 2 MounaTORJMEN KHEMAKHEM38383838 Mouna TORJMEN KHEMAKHEM
  • 39. Erasure coding pour plus de résilience Intégration du technique erasure coding à HDFS pour améliorer la récupération et la fiabilité des données UnYARN renforcé et plus étendu amélioration des capacités de scalabilité des applications distribuées sur plusieurs milliers de nœuds d’un Evolution de Hadoop: Hadoop 3 des applications distribuées sur plusieurs milliers de nœuds d’un cluster 39393939 Mouna TORJMEN KHEMAKHEM