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

Chapitre 2 hadoop

  • 1.
    Big Data Mouna TORJMENKHEMAKHEM Ecole Nationale d’Ingénieurs de Sfax (ENIS) 2017-2018
  • 2.
  • 3.
    Plan du chapitre Présentationet Historique de Hadoop HDFS MAP-REDUCE Architecture Hadoop YARNYARN Hadoop2 Mouna TORJMEN KHEMAKHEM
  • 4.
    Projet open sourced’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 pourles 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èmede 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 Bloc2Bloc 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: Ensystè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: Fonctionnementdu HDFS 12121212 Mouna TORJMEN KHEMAKHEM
  • 13.
    • Duplication En phased'é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èrel'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 NameNodeest 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œudesclave 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 fichieren HDFS 17171717 Mouna TORJMEN KHEMAKHEM
  • 18.
    Lecture d'un fichieren HDFS 18181818 Mouna TORJMEN KHEMAKHEM
  • 19.
    Créer un dossierdans 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èlede 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 deuxfonctions : 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 MapReduceest 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èmeavec 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: compterle 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 POURMOT 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: compterle 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: calculerle 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 •Hadoopest 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 signaleson 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 NameNodeName 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
  • 31.
  • 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écutesur 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écutiond’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 pourplus 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