SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
Chp2 – Hadoop et MapReduce
Architecture et Comportement
Big Data
GL4 (Option Management des Systèmes d'Information) - 2016
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 1
HADOOP
Chp2 – Hadoop et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
Hadoop
•  Le projet Hadoop consiste en deux grandes parties:
§  Stockage des données : HDFS (Hadoop Distributed File System)
§  Traitement des données : MapReduce / Yarn
•  Principe :
§  Diviser les données
§  Les sauvegarder sur une collection de machines, appelées cluster
§  Traiter les données directement là où elles sont stockées, plutôt que de les
copier à partir d’un serveur distribué
•  Il est possible d’ajouter des machines à votre cluster, au fur et à
mesure que les données augmentent
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 3
Présentation du Framework
Hadoop, HDFS et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 4
Présentation du Framework
Big	
  Data	
  
HDFS	
  
Données	
  U1les	
  
NN	
  
DN	
  
DN	
  
DN	
  
DN	
  
DN	
  
DN	
  
Données	
  U1les	
  
Copie	
  du	
  local	
  
MAP	
   REDUCE	
  
Copie	
  vers	
  le	
  local	
  
Ecosystème de Hadoop
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 5
Présentation du Framework
En plus des briques de base
Yarn Map Reduce/HDFS,
plusieurs outils existent pour
permettre:
§  L’extraction et le stockage
des données de/sur HDFS
§  La simplification des
opérations de traitement
sur ces données
§  La gestion et coordination
de la plateforme
§  Le monitoring du cluster
Ecosystème de Hadoop
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 6
Présentation du Framework
Parmi ces outils, certains se trouvent
au dessus de la couche Yarn/MR, tel
que:
§  Pig: Langage de script
§  Hive: Langage proche de SQL
(Hive QL)
§  R Connectors: permet l’accès à
HDFS et l’exécution de
requêtes Map/Reduce à partir
du langage R
§  Mahout: bibliothèque de
machine learning et
mathématiques
§  Oozie: permet d’ordonnancer
les jobs Map Reduce, en
définissant des workflows
Ecosystème de Hadoop
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 7
Présentation du Framework
D’autres outils sont directement au
dessus de HDFS, tel que :
§  Hbase : Base de données
NoSQL orientée colonnes
§  Impala (pas représenté dans
la figure): Permet le requêtage
de données directement à
partir de HDFS (ou de Hbase)
en utilisant des requêtes Hive
SQL
Ecosystème de Hadoop
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 8
Présentation du Framework
Certains outils permettent de
connecter HDFS aux sources
externes, tel que:
§  Sqoop: Lecture et écriture des
données à partir de bases de
données externes
§  Flume: Collecte de logs et
stockage dans HDFS
Ecosystème de Hadoop
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 9
Présentation du Framework
Enfin, d’autres outils permettent la
gestion et administration de Hadoop,
tel que:
§  Ambari: outil pour le
provisionnement, gestion et
monitoring des clusters
§  Zookeeper: fournit un service
centralisé pour maintenir les
information de configuration,
de nommage et de
synchronisation distribuée
HDFS: HADOOP DISTRIBUTED FILE SYSTEM
Chp2 – Hadoop et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10
HDFS : Hadoop Distributed File System
•  HDFS est un système de fichiers
distribué, extensible et portable
•  Ecrit en Java
•  Permet de stocker de très gros volumes
de données sur un grand nombre de
machines (nœuds) équipées de disques
durs banalisés è Cluster
•  Quand un fichier mydata.txt est
enregistré dans HDFS, il est décomposé
en grands blocs (par défaut 64Mo),
chaque bloc ayant un nom unique: blk_1,
blk_2…
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 11
Architecture
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
Nœuds	
  	
  
Cluster	
  
HDFS : Hadoop Distributed File System
•  Chaque bloc est enregistré dans un
nœud différent du cluster
•  DataNode : démon sur chaque
nœud du cluster
•  NameNode :
§  Démon s’exécutant sur une
machine séparée
§  Contient des méta-données
§  Permet de retrouver les nœuds qui
exécutent les blocs d’un fichier
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 12
Architecture
DataNode	
  
DN	
  
DN	
  
DN	
  
DN	
  
DN	
  
NN	
  
NameNode	
  
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
HDFS : Hadoop Distributed File System
•  Quels sont les problèmes possibles?
q  Panne de réseau ?
q  Panne de disque sur les DataNodes ?
q  Pas tous les DN sont utilisés ?
q  Les tailles des blocks sont différentes ?
q  Panne de disque sur les NameNodes ?
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 13
Architecture
✓
✓
✓
DN	
  
DN	
  
DN	
  
DN	
  
DN	
  
NN	
  
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
HDFS : Hadoop Distributed File System
•  Si l’un des nœuds a un problème, les
données seront perdues
§  Hadoop réplique chaque bloc 3 fois (par
défaut)
§  Il choisit 3 nœuds au hasard, et place une
copie du bloc dans chacun d’eux
§  Si le nœud est en panne, le NN le détecte,
et s’occupe de répliquer encore les blocs
qui y étaient hébergés pour avoir toujours
3 copies stockées
§  Concept de Rack Awareness (rack = baie de
stockage)
•  Si le NameNode a un problème ?
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 14
Architecture
DN	
  
DN	
  
NN	
  
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
DN	
  
DN	
  
DN	
  
HDFS : Hadoop Distributed File System
•  Si le NameNode a un problème :
q  Pas de problème
q  Données perdues à jamais
q  Données inaccessibles?
•  Si c’est un problème d’accès (réseau),
les données sont temporairement
inaccessibles
•  Si le disque du NN est défaillant, les
données seront perdues à jamais
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 15
Architecture
✓
✓
DN	
  
DN	
  
NN	
  
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
DN	
  
DN	
  
DN	
  
HDFS : Hadoop Distributed File System
•  Pour éviter cela, le NameNode sera
dupliqué, non seulement sur son
propre disque, mais également
quelque part sur le système de
fichiers du réseau
•  Définition d’un autre NN (standby
namenode) pour reprendre le travail
si le NameNode actif est défaillant
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 16
Architecture
DN	
  
DN	
  
NN	
  
64	
  Mo	
  
64	
  Mo	
  
22	
  Mo	
  
mydata.txt	
  (150	
  Mo)	
  
blk_1	
  
blk_2	
  
blk_3	
  
DN	
  
DN	
  
DN	
  
NN	
  
Standby	
  
NameNode	
  
MAP-REDUCE & YARN
Chp2 – Hadoop et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17
Map-Reduce
•  Patron d’architecture de
développement permettant de traiter
des données volumineuses de
manière parallèle et distribuée
•  A la base, le langage Java est utilisé,
mais grâce à une caractéristique de
Hadoop appelée Hadoop Streaming, il
est possible d’utiliser d’autres
langages comme Python ou Ruby
•  Au lieu de parcourir le fichier
séquentiellement (bcp de temps), il
est divisé en morceaux qui sont
parcourus en parallèle.
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 18
Définition
Map-Reduce
•  Imaginons que vous ayez plusieurs
magasins que vous gérez à travers le
monde
•  Un très grand livre de comptes
contenant TOUTES les ventes
•  Objectif : Calculer le total des ventes
par magasin pour l’année en cours
•  Supposons que les lignes du livres
aient la forme suivante:
§  Jour Ville produit Prix
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 19
Exemple
Grand Livre
des Ventes
2012-­‐01-­‐01 	
  London 	
  Clothes 	
  25.99	
  
2012-­‐01-­‐01 	
  Miami 	
  	
   	
  Music 	
  	
  	
  	
   	
  12.15	
  
2012-­‐01-­‐02 	
  NYC 	
  	
   	
  	
  Toys	
  	
   	
  	
  	
  	
   	
  3.10	
  
2012-­‐01-­‐02 	
  Miami 	
  	
   	
  Clothes 	
  50.00	
  
Map-Reduce
•  Possibilité :
§  Pour chaque entrée, saisir la ville et
le prix de vente
§  Si on trouve une entrée avec une
ville déjà saisie, on les regroupe en
faisant la somme des ventes
•  Dans un environnement de calcul
traditionnel, on utilise généralement
des Hashtables, sous forme de:
o  Clef Valeur
•  Dans notre cas, la clef serait l’adresse
du magasin, et la valeur le total des
ventes.
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 20
Exemple
Grand Livre
des Ventes
London 	
  	
  	
  	
  25.99	
  
Miami 	
  	
   	
  	
  	
  	
  12.15	
  
NYC 	
  	
   	
  	
  	
  	
  3.10	
  
London	
   	
  	
  	
  	
  25.99	
  
Miami 	
  	
   	
  	
  	
  	
  62.15	
  
NYC 	
  	
   	
  	
  	
  	
  3.10	
  
2012-­‐01-­‐01 	
  London 	
  Clothes 	
  25.99	
  
2012-­‐01-­‐01 	
  Miami 	
  	
   	
  Music 	
  	
  	
  	
   	
  12.15	
  
2012-­‐01-­‐02 	
  NYC 	
  	
   	
  	
  Toys	
  	
   	
  	
  	
  	
   	
  3.10	
  
2012-­‐01-­‐02 	
  Miami 	
  	
   	
  Clothes 	
  50.00	
  
Map-Reduce
•  Si on utilise les hashtables sur 1To,
Problèmes ?
q  Ça ne marchera pas ?
q  Problème de mémoire ?
q  Temps de traitement long ?
q  Réponses erronées ?
•  Le traitement séquentiel de toutes les
données peut s’avérer très long
•  Plus on a de magasins, plus l’ajout des
valeurs à la table est long
•  Il est possible de tomber à court de
mémoire pour enregistrer cette table
•  Mais cela peut marcher, et le résultat
sera correct
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 21
Exemple
✓
✓
London 	
  	
  	
  25.99	
  
Miami 	
  	
   	
  	
  	
  62.15	
  
NYC 	
  	
   	
  	
  	
  3.10	
  
Clef 	
   	
  	
  Valeur	
  
2012-­‐01-­‐01 	
  London 	
  Clothes 	
  25.99	
  
2012-­‐01-­‐01 	
  Miami 	
  	
   	
  Music 	
  	
  	
  	
   	
  12.15	
  
2012-­‐01-­‐02 	
  NYC 	
  	
   	
  	
  Toys	
  	
   	
  	
  	
  	
   	
  3.10	
  
2012-­‐01-­‐02 	
  Miami 	
  	
   	
  Clothes 	
  50.00	
  
Grand Livre
des Ventes
Map-Reduce
•  Map-Reduce : Moyen plus efficace
et rapide de traiter ces données
•  Au lieu d’avoir une seule personne
qui parcourt le livre, si on en
recrutait plusieurs?
•  Appeler un premier groupe les
Mappers et un autre les Reducers
•  Diviser le livre en plusieurs
parties, et en donner une à
chaque Mapper
§  Les Mappers peuvent travailler en
même temps, chacun sur une
partie des données
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 22
Exemple
Mappers
Reducers
Map-Reduce
Mappers
•  Pour chaque entrée, saisir la ville, et le
total des ventes et les enregistrer dans
une fiche
•  Rassembler les fiches du même
magasin dans une même pile
Reducers
•  Chaque Reducer sera responsable d’un
ensemble de magasins
•  Ils collectent les fiches qui leur sont
associées des différents Mappers
•  Ils regroupent les petites piles d’une
même ville en une seule
•  Ils parcourent ensuite chaque pile par
ordre alphabétique des villes (L.A avant
Miami), et font la somme de l’ensemble
des enregistrements
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 23
Exemple
Mappers
Reducers
Miami	
   L.	
  A.	
   N.Y.C	
  N.Y.C.	
   N.Y.C.	
   Miami	
  
L.	
  A.	
  
Miami	
  
Miami	
  
L.	
  A.	
  
L.	
  A.	
  
N.Y.C	
  
N.Y.C	
  
N.Y.C	
  
$300,578	
  
$603.768	
  
$432.900	
  
Map-Reduce
•  Le Reducer reçoit des données
comme suit :
o  Miami 12.34
o  Miami 99.07
o  Miami 3.14
o  NYC 99.77
o  NYC 88.99
•  Pour chaque entrée, de quoi avons-
nous besoin pour calculer la totalité
des ventes pour chaque magasin?
q  Coût précédent
q  Coût en cours
q  Ventes totales par magasin
q  Magasin précédent
q  Magasin en cours
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 24
Exemple
✓
✓
✓
✓
Miami	
   L.	
  A.	
   N.Y.C	
  N.Y.C.	
   N.Y.C.	
   Miami	
  
L.	
  A.	
  
Miami	
  
Miami	
  
L.	
  A.	
  
L.	
  A.	
  
N.Y.C	
  
N.Y.C	
  
N.Y.C	
  
$300,578	
  
$603.768	
  
$432.900	
  
Mappers
Reducers
Map-Reduce
•  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
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 25
Fonctionnement
Mappers
Enregistrements
Intermédiaires
(Clef, Valeur)
Mélange & Tri
Reducers
Résultats
(Clef, Valeurs)
Map-Reduce
•  Pour avoir un résultat trié par ordre, on
doit:
§  Soit avoir un seul Reducer, mais ça ne se
met pas bien à l’échelle
§  Soit ajouter une autre étape permettant de
faire le tri final
•  Si on a plusieurs Reducers, on ne peut pas
savoir lesquels traitent quelles clefs: le
partitionnement est aléatoire.
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 26
Résultats
Mappers
Enregistrements
Intermédiaires
(Clef, Valeur)
Mélange & Tri
Reducers
Résultats
(Clef, Valeurs)
MapReduce V1 (MRv1)
MapReduce v1 intègre trois composants
•  API
§  Pour permettre au programmeur
l’écriture d’applications MapReduce
•  Framework
§  Services permettant l’exécution des
Jobs MapReduce, le Shuffle/Sort…
•  Resource Management
§  Infrastructure pour gérer les noeuds
du cluster, allouer des ressources et
ordonnancer les jobs
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 27
Composants
MapReduce 1
API	
  
Framework	
  
Resource	
  
Management	
  
MapReduce V1 (MRv1)
•  JobTracker
§  Divise le travail sur les Mappers et Reducers, s’exécutant sur les différents
nœuds
•  TaskTracker
§  S’exécute sur chacun des nœuds pour exécuter les vraies tâches de Map-
Reduce
§  Choisit en général de traiter (Map ou Reduce) un bloc sur la même machine
que lui
§  S’il est déjà occupé, la tâche revient à un autre tracker, qui utilisera le
réseau (rare)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 28
Démons
MapReduce V1 (MRv1)
•  Un job Map-Reduce (ou une Application Map-Reduce) est divisé sur
plusieurs tâches appelées mappers et reducers
•  Chaque tâche est exécutée sur un nœud du cluster
•  Chaque nœud a un certain nombre de slots prédéfinis:
§  Map Slots
§  Reduce Slots
•  Un slot est une unité d’exécution qui représente la capacité du task
tracker à exécuter une tâche (map ou reduce) individuellement, à un
moment donné
•  Le Job Tracker se charge à la fois:
§  D’allouer les ressources (mémoire, CPU…) aux différentes tâches
§  De coordonner l’exécution des jobs Map-Reduce
§  De réserver et ordonnancer les slots, et de gérer les fautes en réallouant
les slots au besoin
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 29
Fonctionnement
MapReduce V1 (MRv1)
•  Le Job Tracker s’exécute sur une seule machine, et fait plusieurs
tâches (gestion de ressources, ordonnancement et monitoring des
tâches…)
§  Problème de scalabilité: les nombreux datanodes existants ne sont pas
exploités, et le nombre de noeuds par cluster limité à 4000
•  Si le Job Tracker tombe en panne, tous les jobs doivent redémarrer
§  Problème de disponibilité: SPoF
•  Le nombre de map slots et de reduce slots est prédéfini
§  Problème d’exploitation: si on a plusieurs map jobs à exécuter, et que les
map slots sont pleins, les reduce slots ne peuvent pas être utilisés, et vice-
versa
•  Le Job Tracker est fortement intégré à Map Reduce
§  Problème d’interoperabilité: impossible d’exécuter des applications non-
MapReduce sur HDFS
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 30
Problèmes
MapReduce V2 (MRv2)
•  MapReduce v2 sépare la gestion des
ressources de celle des tâches MR
•  Pas de notion de slots:
§  les nœuds ont des ressources (CPU,
mémoire..) allouées aux applications à la
demande
•  Définition de nouveaux démons
§  La plupart des fonctionnalités du Job
Tracker sont déplacées vers le
Application Master
§  Un cluster peut avoir plusieurs
Application Masters
•  Support les applications MR et non-MR
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 31
Composants
MapReduce 2
MR	
  API	
  
Framework	
  
YARN
Resource	
  
Management	
  
YARN	
  API	
  
MapReduce V2 (MRv2)
•  Resource Manager (RM)
§  Tourne sur le nœud master
§  Ordonnanceur de ressources global
§  Permet l’arbitrage des ressources entre plusieurs applications
•  Node Manager (NM)
§  S’exécute sur les nœuds esclaves
§  Communique avec RM
•  Containers
§  Créés par RM à la demande
§  Se voit allouer des ressources sur le nœud esclave
•  Application Master (AM)
§  Un seul par application
§  S’exécute sur un container
§  Demande plusieurs containers pour exécuter les tâches de l’application
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 32
Démons
Resource
Manager
Node Manager
Application
Master
1 GB
1 core
3 GB
1 core
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 33
Lancement d’une Application dans un Cluster YARN
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
Lance application
MyApp
1	
  
Déclenche
2	
  
Application
Master
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 34
Lancement d’une Application dans un Cluster YARN
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
Demande Ressources3	
  
Application
Master
Allocation4	
  
Allocation
4	
  
IDs Containers5	
  
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 35
Lancement d’une Application dans un Cluster YARN
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
Application
Master
MyApp
MyApp
Déclenche
6	
  
Déclenche
6	
  
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 36
Lancement d’une Application dans un Cluster YARN
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
Application
Master
MyApp
MyApp
Client
Application
Master
YourApp
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 37
Lancement d’une Application dans un Cluster YARN
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
Application
Master
MyApp
MyApp
Client
Application
Master
YourApp
YourApp
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 38
Exécution d’un Job Map-Reduce
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
myData
Block1
Block2
DataNode
DataNode
DataNode
DataNode
WordCount
Déclenche
Application
Master
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 39
Exécution d’un Job Map-Reduce
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
myData
Block1
Block2
DataNode
DataNode
DataNode
DataNode
Demande Ressources
(Mappers) Application
Master
Allocation
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 40
Exécution d’un Job Map-Reduce
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
myData
Block1
Block2
DataNode
DataNode
DataNode
DataNode
Application
Master
WordCount
Map Task
WordCount
Map Task
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 41
Exécution d’un Job Map-Reduce
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
myData
Block1
Block2
DataNode
DataNode
DataNode
DataNode
Application
Master
WordCount
Map Task
WordCount
Map Task
Demande
Ressources
(Reducers)
Allocation
MapReduce V2 (MRv2)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 42
Exécution d’un Job Map-Reduce
Resource
Manager
Node Manager
Node Manager
Node Manager
Node Manager
Client
myData
Block1
Block2
DataNode
DataNode
DataNode
DataNode
Application
Master
WordCount
ReduceTask
WordCount
ReduceTask
MAP-REDUCE DESIGN PATTERNS
Chp2 – Hadoop et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 43
Map-Reduce Design Patterns
•  Les designs patterns (Patrons de Conception) représentent les types
de traitements Map-Reduce les plus utilisés avec Hadoop
•  Classés en trois catégories:
§  Patrons de Filtrage (Filtering Patterns)
o  Echantillonnage de données
o  Listes des top-n
§  Patrons de Récapitulation (Summarization Patterns)
o  Comptage des enregistrements
o  Trouver les min et les max
o  Statistiques
o  Indexes
§  Patrons Structurels
o  Combinaison de données relationnelles
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 44
Présentation
Patrons de Filtrage
•  Ne modifient pas les données
•  Trient, parmi les données présentes, lesquelles
garder et lesquelles enlever
•  On peut obtenir:
§  Des filtres simples : définition d’une fonction
indiquant le critère de filtrage
§  L’échantillonnage (sampling): création d’un petit
ensemble d’enregistrements à partir d’un grand
ensemble, en retenant des échantillons (comme
la valeur la plus élevée d’un champs particulier)
§  L’échantillonnage aléatoire : retenir un échantillon
représentatif des données initiales
§  Les listes Top-n
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 45
Présentation
✗
✓
✗
✗
✓
✓
✗
✗
✓
Patrons de Filtrage
•  Exemple de Filtrage Simple:
§  Cas d’étude : fichier contenant
tous les posts des utilisateurs
sur un forum
§  Filtre : Retenir les posts les
plus courts, contenant une
seule phrase
o  Une phrase est un post qui ne
contient aucune ponctuation
de la forme: .!?, ou alors une
seule à la fin.
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 46
Exemple
Patrons de Filtrage
•  Exemple: Top 10
§  Trouver parmi les
différents posts des
forums, les 10 posts les
plus longs
§  Dans une Base de
données Relationnelle:
o  Trier les données
o  Extraire les 10
premières
§  Map-Reduce (de la même
manière qu’une sélection
sportive)
o  Chaque Mapper génère
une liste Top-10
o  Le Reducer trouve les
Top 10 globaux
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 47
Exemple
Patrons de Récapitulation
•  Permettent de vous donner une idée de haut niveau de vos données
•  On distingue deux types:
§  Index : Tels que les index à la fin d’un livre, ou les index utilisés par google
pour représenter les pages web
§  Récapitulation (ou résumé) numérique : par exemple:
o  Chercher des chiffres, des comptes (combien dispose-t-on d’un certain type
d’entrées)
o  Min et Max
o  Premier et dernier
o  Moyenne
o  …
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 48
Présentation
Patrons de Récapitulation
•  Les index permettent une recherche plus rapide
•  Dans un livre: pour chaque mot donné, indiquer les différentes pages
où se trouve ce mot
•  Dans le web: on trouve des liens vers des pages web à partir d’un
ensemble de mots clefs
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 49
Index
Patrons de Récapitulation
•  Exemple : Indexation des mots dans les posts d’un forum
•  Mapper è
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 50
Index
Patrons de Récapitulation
•  Exemple : Indexation
des mots dans les
posts d’un forum
•  Reducer è
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 51
Index
Patrons de Récapitulation
•  Peuvent être:
§  Le nombre de mots, enregistrements…
o  Souvent: la clef = l’objet à compter, et la valeur = 1 (nombre d’occurrences)
§  Min-Max / Premier-Dernier
§  La moyenne
§  La médiane
§  Écart type
§  …
•  Exemple de question:
§  Y’a-t-il une relation entre le jour de la semaine et la somme dépensée par
les clients?
§  Mapper : clef = jour_de_la_semaine; valeur = somme_dépensée
§  Reducer : calcul
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 52
Récapitulations Numériques
Patrons de Récapitulation
•  Possibilité d’utiliser un mélangeur (Combiner) entre les mappers et les
reducers
•  Permettent de réaliser la réduction en local dans chacun des DataNodes
Mappers AVANT de faire appel au nœud réducteur principal.
•  Exemple: pour calculer la moyenne des ventes par jour de la semaine:
§  Sans Combiner
o  Les Mappers parcourent les données, et affichent le couple (Jour_de_la_semaine,
montant)
o  Pour chaque jour, le Reducer conserve une somme et un compteur
o  Il divise à la fin la somme par le compteur
§  Avec Combiner
o  Chaque nœud réalise une première réduction où les moyennes locales sont calculées
o  Le Reducer final regroupe ces moyennes et synthétise la moyenne finale
o  Nombre d’enregistrements envoyés au réducteur significativement réduit
o  Temps nécessaire pour la réduction diminue
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 53
Mélangeur
Patrons Structurels
•  Utilisés quand les données proviennent d’une base de données structurée
•  Plusieurs tables, donc plusieurs sources de données, liées par clef étrangère
•  Les données des différentes tables sont exportées sous forme de fichiers
délimités
•  Le Mapper aura donc comme tâche de :
§  Parcourir l’ensemble des fichiers correspondant aux tables de la base
§  Extraire de chacune des entrées les données nécessaires, en utilisant comme
clef la clef étrangère joignant les deux tables
§  Afficher les données extraites des différentes tables, chacune sur une ligne, en
créant un champs supplémentaire indiquant la source des données.
•  Reducer :
§  Fera l’opération de jointure entre les deux sources, en testant la provenance
avec le champs supplémentaire (A ou B)
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 54
Présentation
Id_user	
  
Source	
  des	
  données	
  (A	
  si	
  de	
  la	
  table	
  1,	
  B	
  si	
  de	
  
la	
  table	
  2)	
  
EN CONCLUSION…
Chp2 – Hadoop et MapReduce
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 55
Hadoop…
•  La gestion des défaillances : que ce soit au niveau du stockage ou
traitement, les nœuds responsables de ces opérations sont
automatiquement gérés en cas de défaillance. Nous avons donc une
forte tolérance aux pannes.
•  La sécurité et persistance des données : Grâce au concept « Rack
Awarness », il n’y a plus de soucis de perte de données.
•  La montée en charge: garantie d’une montée en charge maximale.
•  La complexité réduite: capacité d'analyse et de traitement des
données à grande échelle.
•  Le coût réduit : Hadoop est open source, et malgré leur massivité et
complexité, les données sont traitées efficacement et à très faible
coût
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 56
Avantages
Hadoop…
•  Difficulté d’intégration avec d’autres systèmes informatiques: le
transfert de données d’une structure Hadoop vers des bases de
données traditionnelles est loin d’être trivial
•  Administration complexe : Hadoop utilise son propre langage.
L’entreprise doit donc développer une expertise spécifique Hadoop
ou faire appel à des prestataires extérieurs
•  Traitement de données différé et temps de latence important:
Hadoop n’est pas fait pour l’analyse temps réel des données.
•  Produit en développement continu : manque de maturité
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 57
Inconvénients
Sources
•  Cours
§  Big Data Analytics – Lesson 1: What is Big Data, IBM, Big Data University
§  Intro to Hadoop and MapReduce, Coursera, Udacity
•  Présentations
§  Introduction to YARN and MapReduce2, Cloudera
Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 58

Contenu connexe

Tendances

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduceAmal Abid
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3Amal Abid
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4JLilia Sfaxi
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleLilia Sfaxi
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQLOussama ARBI
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Hatim CHAHDI
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
DataWarehouse
DataWarehouseDataWarehouse
DataWarehousenzuguem
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPTriyadadva
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursHatim CHAHDI
 

Tendances (20)

Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Technologies pour le Big Data
Technologies pour le Big DataTechnologies pour le Big Data
Technologies pour le Big Data
 
TP1 Big Data - MapReduce
TP1 Big Data - MapReduceTP1 Big Data - MapReduce
TP1 Big Data - MapReduce
 
Cours Big Data Chap3
Cours Big Data Chap3Cours Big Data Chap3
Cours Big Data Chap3
 
BigData_TP5 : Neo4J
BigData_TP5 : Neo4JBigData_TP5 : Neo4J
BigData_TP5 : Neo4J
 
Les BD NoSQL
Les BD NoSQLLes BD NoSQL
Les BD NoSQL
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Chp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation MultidimensionnelleChp3 - Modélisation Multidimensionnelle
Chp3 - Modélisation Multidimensionnelle
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
Bi
BiBi
Bi
 
Base de données NoSQL
Base de données NoSQLBase de données NoSQL
Base de données NoSQL
 
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
Cours HBase et Base de Données Orientées Colonnes (HBase, Column Oriented Dat...
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
DataWarehouse
DataWarehouseDataWarehouse
DataWarehouse
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka StreamsTraitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
 
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er coursBases de Données non relationnelles, NoSQL (Introduction) 1er cours
Bases de Données non relationnelles, NoSQL (Introduction) 1er cours
 

En vedette

BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopLilia Sfaxi
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessVincent de Stoecklin
 
MapReduce Design Patterns
MapReduce Design PatternsMapReduce Design Patterns
MapReduce Design PatternsDonald Miner
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business IntelligenceLilia Sfaxi
 
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
 
Introduction au Web
Introduction au WebIntroduction au Web
Introduction au WebLilia Sfaxi
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design PatternsLilia Sfaxi
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScriptLilia Sfaxi
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJSLilia Sfaxi
 
Mobile developement
Mobile developementMobile developement
Mobile developementLilia Sfaxi
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopJoseph Glorieux
 
Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQLSamy Dindane
 
Big Data Analytics for connected home
Big Data Analytics for connected homeBig Data Analytics for connected home
Big Data Analytics for connected homeHéloïse Nonne
 
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
 

En vedette (20)

BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-business
 
MapReduce Design Patterns
MapReduce Design PatternsMapReduce Design Patterns
MapReduce Design Patterns
 
Thinking BIG
Thinking BIGThinking BIG
Thinking BIG
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
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
 
Introduction au Web
Introduction au WebIntroduction au Web
Introduction au Web
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Client-side JavaScript
Client-side JavaScriptClient-side JavaScript
Client-side JavaScript
 
Angular
AngularAngular
Angular
 
Core JavaScript
Core JavaScriptCore JavaScript
Core JavaScript
 
Server-side JS with NodeJS
Server-side JS with NodeJSServer-side JS with NodeJS
Server-side JS with NodeJS
 
Mobile developement
Mobile developementMobile developement
Mobile developement
 
Présentation Big Data et REX Hadoop
Présentation Big Data et REX HadoopPrésentation Big Data et REX Hadoop
Présentation Big Data et REX Hadoop
 
Bases de données NoSQL
Bases de données NoSQLBases de données NoSQL
Bases de données NoSQL
 
Une introduction à MapReduce
Une introduction à MapReduceUne introduction à MapReduce
Une introduction à MapReduce
 
Big Data Analytics for connected home
Big Data Analytics for connected homeBig Data Analytics for connected home
Big Data Analytics for connected home
 
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
 

Similaire à BigData_Chp2: Hadoop & Map-Reduce

Distributed programing (hadoop && java) version finale.pptx
Distributed programing  (hadoop && java) version finale.pptxDistributed programing  (hadoop && java) version finale.pptx
Distributed programing (hadoop && java) version finale.pptxAhmed rebai
 
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
 
Solr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big DataSolr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big Datafrancelabs
 
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
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadooppkernevez
 
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
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystèmeKhanh Maudoux
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Olivier Grisel
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solutionJEMLI Fathi
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databasesCédric Villa
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSoft Computing
 
Delta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelleDelta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échellefrançois de Buttet
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm
 

Similaire à BigData_Chp2: Hadoop & Map-Reduce (20)

chp
chpchp
chp
 
Distributed programing (hadoop && java) version finale.pptx
Distributed programing  (hadoop && java) version finale.pptxDistributed programing  (hadoop && java) version finale.pptx
Distributed programing (hadoop && java) version finale.pptx
 
Hadoop
HadoopHadoop
Hadoop
 
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
 
Solr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big DataSolr + Hadoop - Fouillez facilement dans votre système Big Data
Solr + Hadoop - Fouillez facilement dans votre système Big Data
 
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
 
Plongée dans la plateforme hadoop
Plongée dans la plateforme hadoopPlongée dans la plateforme hadoop
Plongée dans la plateforme hadoop
 
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 )
 
Hadoop et son écosystème
Hadoop et son écosystèmeHadoop et son écosystème
Hadoop et son écosystème
 
Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009Hadoop MapReduce - OSDC FR 2009
Hadoop MapReduce - OSDC FR 2009
 
Afterwork hadoop
Afterwork hadoopAfterwork hadoop
Afterwork hadoop
 
Big data: NoSQL comme solution
Big data: NoSQL comme solutionBig data: NoSQL comme solution
Big data: NoSQL comme solution
 
Relational databases & NoSQL databases
Relational databases & NoSQL databasesRelational databases & NoSQL databases
Relational databases & NoSQL databases
 
SAS Forum Soft Computing Théâtre
SAS Forum Soft Computing ThéâtreSAS Forum Soft Computing Théâtre
SAS Forum Soft Computing Théâtre
 
Hadoop
HadoopHadoop
Hadoop
 
Delta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelleDelta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelle
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide CompletAlphorm.com Formation Big Data & Hadoop : Le Guide Complet
Alphorm.com Formation Big Data & Hadoop : Le Guide Complet
 

Plus de Lilia Sfaxi

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfLilia Sfaxi
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfLilia Sfaxi
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-CassandraLilia Sfaxi
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-CorrectionLilia Sfaxi
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-CorrectionLilia Sfaxi
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-CorrectionLilia Sfaxi
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-CorrectionLilia Sfaxi
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-SéquencesLilia Sfaxi
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-CorrectionLilia Sfaxi
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - CorrectionLilia Sfaxi
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correctionLilia Sfaxi
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrageLilia Sfaxi
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Lilia Sfaxi
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intentsLilia Sfaxi
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésLilia Sfaxi
 

Plus de Lilia Sfaxi (20)

chp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdfchp1-Intro à l'urbanisation des SI.pdf
chp1-Intro à l'urbanisation des SI.pdf
 
Plan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdfPlan d'études_INSAT_2022_2023.pdf
Plan d'études_INSAT_2022_2023.pdf
 
Lab3-DB_Neo4j
Lab3-DB_Neo4jLab3-DB_Neo4j
Lab3-DB_Neo4j
 
Lab2-DB-Mongodb
Lab2-DB-MongodbLab2-DB-Mongodb
Lab2-DB-Mongodb
 
Lab1-DB-Cassandra
Lab1-DB-CassandraLab1-DB-Cassandra
Lab1-DB-Cassandra
 
TP2-UML-Correction
TP2-UML-CorrectionTP2-UML-Correction
TP2-UML-Correction
 
TP1-UML-Correction
TP1-UML-CorrectionTP1-UML-Correction
TP1-UML-Correction
 
TP0-UML-Correction
TP0-UML-CorrectionTP0-UML-Correction
TP0-UML-Correction
 
TD4-UML
TD4-UMLTD4-UML
TD4-UML
 
TD4-UML-Correction
TD4-UML-CorrectionTD4-UML-Correction
TD4-UML-Correction
 
TD3-UML-Séquences
TD3-UML-SéquencesTD3-UML-Séquences
TD3-UML-Séquences
 
TD3-UML-Correction
TD3-UML-CorrectionTD3-UML-Correction
TD3-UML-Correction
 
TD2 - UML - Correction
TD2 - UML - CorrectionTD2 - UML - Correction
TD2 - UML - Correction
 
TD1 - UML - DCU
TD1 - UML - DCUTD1 - UML - DCU
TD1 - UML - DCU
 
TD1-UML-correction
TD1-UML-correctionTD1-UML-correction
TD1-UML-correction
 
Android - Tp1 - installation et démarrage
Android - Tp1 -   installation et démarrageAndroid - Tp1 -   installation et démarrage
Android - Tp1 - installation et démarrage
 
Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques Android - Tp2 - Elements graphiques
Android - Tp2 - Elements graphiques
 
Android - Tp3 - intents
Android - Tp3 -  intentsAndroid - Tp3 -  intents
Android - Tp3 - intents
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Android - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancésAndroid - Tp4 - graphiques avancés
Android - Tp4 - graphiques avancés
 

BigData_Chp2: Hadoop & Map-Reduce

  • 1. Chp2 – Hadoop et MapReduce Architecture et Comportement Big Data GL4 (Option Management des Systèmes d'Information) - 2016 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 1
  • 2. HADOOP Chp2 – Hadoop et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 2
  • 3. Hadoop •  Le projet Hadoop consiste en deux grandes parties: §  Stockage des données : HDFS (Hadoop Distributed File System) §  Traitement des données : MapReduce / Yarn •  Principe : §  Diviser les données §  Les sauvegarder sur une collection de machines, appelées cluster §  Traiter les données directement là où elles sont stockées, plutôt que de les copier à partir d’un serveur distribué •  Il est possible d’ajouter des machines à votre cluster, au fur et à mesure que les données augmentent Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 3 Présentation du Framework
  • 4. Hadoop, HDFS et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 4 Présentation du Framework Big  Data   HDFS   Données  U1les   NN   DN   DN   DN   DN   DN   DN   Données  U1les   Copie  du  local   MAP   REDUCE   Copie  vers  le  local  
  • 5. Ecosystème de Hadoop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 5 Présentation du Framework En plus des briques de base Yarn Map Reduce/HDFS, plusieurs outils existent pour permettre: §  L’extraction et le stockage des données de/sur HDFS §  La simplification des opérations de traitement sur ces données §  La gestion et coordination de la plateforme §  Le monitoring du cluster
  • 6. Ecosystème de Hadoop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 6 Présentation du Framework Parmi ces outils, certains se trouvent au dessus de la couche Yarn/MR, tel que: §  Pig: Langage de script §  Hive: Langage proche de SQL (Hive QL) §  R Connectors: permet l’accès à HDFS et l’exécution de requêtes Map/Reduce à partir du langage R §  Mahout: bibliothèque de machine learning et mathématiques §  Oozie: permet d’ordonnancer les jobs Map Reduce, en définissant des workflows
  • 7. Ecosystème de Hadoop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 7 Présentation du Framework D’autres outils sont directement au dessus de HDFS, tel que : §  Hbase : Base de données NoSQL orientée colonnes §  Impala (pas représenté dans la figure): Permet le requêtage de données directement à partir de HDFS (ou de Hbase) en utilisant des requêtes Hive SQL
  • 8. Ecosystème de Hadoop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 8 Présentation du Framework Certains outils permettent de connecter HDFS aux sources externes, tel que: §  Sqoop: Lecture et écriture des données à partir de bases de données externes §  Flume: Collecte de logs et stockage dans HDFS
  • 9. Ecosystème de Hadoop Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 9 Présentation du Framework Enfin, d’autres outils permettent la gestion et administration de Hadoop, tel que: §  Ambari: outil pour le provisionnement, gestion et monitoring des clusters §  Zookeeper: fournit un service centralisé pour maintenir les information de configuration, de nommage et de synchronisation distribuée
  • 10. HDFS: HADOOP DISTRIBUTED FILE SYSTEM Chp2 – Hadoop et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 10
  • 11. HDFS : Hadoop Distributed File System •  HDFS est un système de fichiers distribué, extensible et portable •  Ecrit en Java •  Permet de stocker de très gros volumes de données sur un grand nombre de machines (nœuds) équipées de disques durs banalisés è Cluster •  Quand un fichier mydata.txt est enregistré dans HDFS, il est décomposé en grands blocs (par défaut 64Mo), chaque bloc ayant un nom unique: blk_1, blk_2… Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 11 Architecture 64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3   Nœuds     Cluster  
  • 12. HDFS : Hadoop Distributed File System •  Chaque bloc est enregistré dans un nœud différent du cluster •  DataNode : démon sur chaque nœud du cluster •  NameNode : §  Démon s’exécutant sur une machine séparée §  Contient des méta-données §  Permet de retrouver les nœuds qui exécutent les blocs d’un fichier Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 12 Architecture DataNode   DN   DN   DN   DN   DN   NN   NameNode   64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3  
  • 13. HDFS : Hadoop Distributed File System •  Quels sont les problèmes possibles? q  Panne de réseau ? q  Panne de disque sur les DataNodes ? q  Pas tous les DN sont utilisés ? q  Les tailles des blocks sont différentes ? q  Panne de disque sur les NameNodes ? Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 13 Architecture ✓ ✓ ✓ DN   DN   DN   DN   DN   NN   64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3  
  • 14. HDFS : Hadoop Distributed File System •  Si l’un des nœuds a un problème, les données seront perdues §  Hadoop réplique chaque bloc 3 fois (par défaut) §  Il choisit 3 nœuds au hasard, et place une copie du bloc dans chacun d’eux §  Si le nœud est en panne, le NN le détecte, et s’occupe de répliquer encore les blocs qui y étaient hébergés pour avoir toujours 3 copies stockées §  Concept de Rack Awareness (rack = baie de stockage) •  Si le NameNode a un problème ? Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 14 Architecture DN   DN   NN   64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3   DN   DN   DN  
  • 15. HDFS : Hadoop Distributed File System •  Si le NameNode a un problème : q  Pas de problème q  Données perdues à jamais q  Données inaccessibles? •  Si c’est un problème d’accès (réseau), les données sont temporairement inaccessibles •  Si le disque du NN est défaillant, les données seront perdues à jamais Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 15 Architecture ✓ ✓ DN   DN   NN   64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3   DN   DN   DN  
  • 16. HDFS : Hadoop Distributed File System •  Pour éviter cela, le NameNode sera dupliqué, non seulement sur son propre disque, mais également quelque part sur le système de fichiers du réseau •  Définition d’un autre NN (standby namenode) pour reprendre le travail si le NameNode actif est défaillant Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 16 Architecture DN   DN   NN   64  Mo   64  Mo   22  Mo   mydata.txt  (150  Mo)   blk_1   blk_2   blk_3   DN   DN   DN   NN   Standby   NameNode  
  • 17. MAP-REDUCE & YARN Chp2 – Hadoop et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 17
  • 18. Map-Reduce •  Patron d’architecture de développement permettant de traiter des données volumineuses de manière parallèle et distribuée •  A la base, le langage Java est utilisé, mais grâce à une caractéristique de Hadoop appelée Hadoop Streaming, il est possible d’utiliser d’autres langages comme Python ou Ruby •  Au lieu de parcourir le fichier séquentiellement (bcp de temps), il est divisé en morceaux qui sont parcourus en parallèle. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 18 Définition
  • 19. Map-Reduce •  Imaginons que vous ayez plusieurs magasins que vous gérez à travers le monde •  Un très grand livre de comptes contenant TOUTES les ventes •  Objectif : Calculer le total des ventes par magasin pour l’année en cours •  Supposons que les lignes du livres aient la forme suivante: §  Jour Ville produit Prix Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 19 Exemple Grand Livre des Ventes 2012-­‐01-­‐01  London  Clothes  25.99   2012-­‐01-­‐01  Miami      Music          12.15   2012-­‐01-­‐02  NYC        Toys              3.10   2012-­‐01-­‐02  Miami      Clothes  50.00  
  • 20. Map-Reduce •  Possibilité : §  Pour chaque entrée, saisir la ville et le prix de vente §  Si on trouve une entrée avec une ville déjà saisie, on les regroupe en faisant la somme des ventes •  Dans un environnement de calcul traditionnel, on utilise généralement des Hashtables, sous forme de: o  Clef Valeur •  Dans notre cas, la clef serait l’adresse du magasin, et la valeur le total des ventes. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 20 Exemple Grand Livre des Ventes London        25.99   Miami            12.15   NYC            3.10   London          25.99   Miami            62.15   NYC            3.10   2012-­‐01-­‐01  London  Clothes  25.99   2012-­‐01-­‐01  Miami      Music          12.15   2012-­‐01-­‐02  NYC        Toys              3.10   2012-­‐01-­‐02  Miami      Clothes  50.00  
  • 21. Map-Reduce •  Si on utilise les hashtables sur 1To, Problèmes ? q  Ça ne marchera pas ? q  Problème de mémoire ? q  Temps de traitement long ? q  Réponses erronées ? •  Le traitement séquentiel de toutes les données peut s’avérer très long •  Plus on a de magasins, plus l’ajout des valeurs à la table est long •  Il est possible de tomber à court de mémoire pour enregistrer cette table •  Mais cela peut marcher, et le résultat sera correct Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 21 Exemple ✓ ✓ London      25.99   Miami          62.15   NYC          3.10   Clef      Valeur   2012-­‐01-­‐01  London  Clothes  25.99   2012-­‐01-­‐01  Miami      Music          12.15   2012-­‐01-­‐02  NYC        Toys              3.10   2012-­‐01-­‐02  Miami      Clothes  50.00   Grand Livre des Ventes
  • 22. Map-Reduce •  Map-Reduce : Moyen plus efficace et rapide de traiter ces données •  Au lieu d’avoir une seule personne qui parcourt le livre, si on en recrutait plusieurs? •  Appeler un premier groupe les Mappers et un autre les Reducers •  Diviser le livre en plusieurs parties, et en donner une à chaque Mapper §  Les Mappers peuvent travailler en même temps, chacun sur une partie des données Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 22 Exemple Mappers Reducers
  • 23. Map-Reduce Mappers •  Pour chaque entrée, saisir la ville, et le total des ventes et les enregistrer dans une fiche •  Rassembler les fiches du même magasin dans une même pile Reducers •  Chaque Reducer sera responsable d’un ensemble de magasins •  Ils collectent les fiches qui leur sont associées des différents Mappers •  Ils regroupent les petites piles d’une même ville en une seule •  Ils parcourent ensuite chaque pile par ordre alphabétique des villes (L.A avant Miami), et font la somme de l’ensemble des enregistrements Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 23 Exemple Mappers Reducers Miami   L.  A.   N.Y.C  N.Y.C.   N.Y.C.   Miami   L.  A.   Miami   Miami   L.  A.   L.  A.   N.Y.C   N.Y.C   N.Y.C   $300,578   $603.768   $432.900  
  • 24. Map-Reduce •  Le Reducer reçoit des données comme suit : o  Miami 12.34 o  Miami 99.07 o  Miami 3.14 o  NYC 99.77 o  NYC 88.99 •  Pour chaque entrée, de quoi avons- nous besoin pour calculer la totalité des ventes pour chaque magasin? q  Coût précédent q  Coût en cours q  Ventes totales par magasin q  Magasin précédent q  Magasin en cours Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 24 Exemple ✓ ✓ ✓ ✓ Miami   L.  A.   N.Y.C  N.Y.C.   N.Y.C.   Miami   L.  A.   Miami   Miami   L.  A.   L.  A.   N.Y.C   N.Y.C   N.Y.C   $300,578   $603.768   $432.900   Mappers Reducers
  • 25. Map-Reduce •  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 Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 25 Fonctionnement Mappers Enregistrements Intermédiaires (Clef, Valeur) Mélange & Tri Reducers Résultats (Clef, Valeurs)
  • 26. Map-Reduce •  Pour avoir un résultat trié par ordre, on doit: §  Soit avoir un seul Reducer, mais ça ne se met pas bien à l’échelle §  Soit ajouter une autre étape permettant de faire le tri final •  Si on a plusieurs Reducers, on ne peut pas savoir lesquels traitent quelles clefs: le partitionnement est aléatoire. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 26 Résultats Mappers Enregistrements Intermédiaires (Clef, Valeur) Mélange & Tri Reducers Résultats (Clef, Valeurs)
  • 27. MapReduce V1 (MRv1) MapReduce v1 intègre trois composants •  API §  Pour permettre au programmeur l’écriture d’applications MapReduce •  Framework §  Services permettant l’exécution des Jobs MapReduce, le Shuffle/Sort… •  Resource Management §  Infrastructure pour gérer les noeuds du cluster, allouer des ressources et ordonnancer les jobs Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 27 Composants MapReduce 1 API   Framework   Resource   Management  
  • 28. MapReduce V1 (MRv1) •  JobTracker §  Divise le travail sur les Mappers et Reducers, s’exécutant sur les différents nœuds •  TaskTracker §  S’exécute sur chacun des nœuds pour exécuter les vraies tâches de Map- Reduce §  Choisit en général de traiter (Map ou Reduce) un bloc sur la même machine que lui §  S’il est déjà occupé, la tâche revient à un autre tracker, qui utilisera le réseau (rare) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 28 Démons
  • 29. MapReduce V1 (MRv1) •  Un job Map-Reduce (ou une Application Map-Reduce) est divisé sur plusieurs tâches appelées mappers et reducers •  Chaque tâche est exécutée sur un nœud du cluster •  Chaque nœud a un certain nombre de slots prédéfinis: §  Map Slots §  Reduce Slots •  Un slot est une unité d’exécution qui représente la capacité du task tracker à exécuter une tâche (map ou reduce) individuellement, à un moment donné •  Le Job Tracker se charge à la fois: §  D’allouer les ressources (mémoire, CPU…) aux différentes tâches §  De coordonner l’exécution des jobs Map-Reduce §  De réserver et ordonnancer les slots, et de gérer les fautes en réallouant les slots au besoin Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 29 Fonctionnement
  • 30. MapReduce V1 (MRv1) •  Le Job Tracker s’exécute sur une seule machine, et fait plusieurs tâches (gestion de ressources, ordonnancement et monitoring des tâches…) §  Problème de scalabilité: les nombreux datanodes existants ne sont pas exploités, et le nombre de noeuds par cluster limité à 4000 •  Si le Job Tracker tombe en panne, tous les jobs doivent redémarrer §  Problème de disponibilité: SPoF •  Le nombre de map slots et de reduce slots est prédéfini §  Problème d’exploitation: si on a plusieurs map jobs à exécuter, et que les map slots sont pleins, les reduce slots ne peuvent pas être utilisés, et vice- versa •  Le Job Tracker est fortement intégré à Map Reduce §  Problème d’interoperabilité: impossible d’exécuter des applications non- MapReduce sur HDFS Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 30 Problèmes
  • 31. MapReduce V2 (MRv2) •  MapReduce v2 sépare la gestion des ressources de celle des tâches MR •  Pas de notion de slots: §  les nœuds ont des ressources (CPU, mémoire..) allouées aux applications à la demande •  Définition de nouveaux démons §  La plupart des fonctionnalités du Job Tracker sont déplacées vers le Application Master §  Un cluster peut avoir plusieurs Application Masters •  Support les applications MR et non-MR Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 31 Composants MapReduce 2 MR  API   Framework   YARN Resource   Management   YARN  API  
  • 32. MapReduce V2 (MRv2) •  Resource Manager (RM) §  Tourne sur le nœud master §  Ordonnanceur de ressources global §  Permet l’arbitrage des ressources entre plusieurs applications •  Node Manager (NM) §  S’exécute sur les nœuds esclaves §  Communique avec RM •  Containers §  Créés par RM à la demande §  Se voit allouer des ressources sur le nœud esclave •  Application Master (AM) §  Un seul par application §  S’exécute sur un container §  Demande plusieurs containers pour exécuter les tâches de l’application Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 32 Démons Resource Manager Node Manager Application Master 1 GB 1 core 3 GB 1 core
  • 33. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 33 Lancement d’une Application dans un Cluster YARN Resource Manager Node Manager Node Manager Node Manager Node Manager Client Lance application MyApp 1   Déclenche 2   Application Master
  • 34. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 34 Lancement d’une Application dans un Cluster YARN Resource Manager Node Manager Node Manager Node Manager Node Manager Client Demande Ressources3   Application Master Allocation4   Allocation 4   IDs Containers5  
  • 35. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 35 Lancement d’une Application dans un Cluster YARN Resource Manager Node Manager Node Manager Node Manager Node Manager Client Application Master MyApp MyApp Déclenche 6   Déclenche 6  
  • 36. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 36 Lancement d’une Application dans un Cluster YARN Resource Manager Node Manager Node Manager Node Manager Node Manager Client Application Master MyApp MyApp Client Application Master YourApp
  • 37. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 37 Lancement d’une Application dans un Cluster YARN Resource Manager Node Manager Node Manager Node Manager Node Manager Client Application Master MyApp MyApp Client Application Master YourApp YourApp
  • 38. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 38 Exécution d’un Job Map-Reduce Resource Manager Node Manager Node Manager Node Manager Node Manager Client myData Block1 Block2 DataNode DataNode DataNode DataNode WordCount Déclenche Application Master
  • 39. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 39 Exécution d’un Job Map-Reduce Resource Manager Node Manager Node Manager Node Manager Node Manager Client myData Block1 Block2 DataNode DataNode DataNode DataNode Demande Ressources (Mappers) Application Master Allocation
  • 40. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 40 Exécution d’un Job Map-Reduce Resource Manager Node Manager Node Manager Node Manager Node Manager Client myData Block1 Block2 DataNode DataNode DataNode DataNode Application Master WordCount Map Task WordCount Map Task
  • 41. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 41 Exécution d’un Job Map-Reduce Resource Manager Node Manager Node Manager Node Manager Node Manager Client myData Block1 Block2 DataNode DataNode DataNode DataNode Application Master WordCount Map Task WordCount Map Task Demande Ressources (Reducers) Allocation
  • 42. MapReduce V2 (MRv2) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 42 Exécution d’un Job Map-Reduce Resource Manager Node Manager Node Manager Node Manager Node Manager Client myData Block1 Block2 DataNode DataNode DataNode DataNode Application Master WordCount ReduceTask WordCount ReduceTask
  • 43. MAP-REDUCE DESIGN PATTERNS Chp2 – Hadoop et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 43
  • 44. Map-Reduce Design Patterns •  Les designs patterns (Patrons de Conception) représentent les types de traitements Map-Reduce les plus utilisés avec Hadoop •  Classés en trois catégories: §  Patrons de Filtrage (Filtering Patterns) o  Echantillonnage de données o  Listes des top-n §  Patrons de Récapitulation (Summarization Patterns) o  Comptage des enregistrements o  Trouver les min et les max o  Statistiques o  Indexes §  Patrons Structurels o  Combinaison de données relationnelles Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 44 Présentation
  • 45. Patrons de Filtrage •  Ne modifient pas les données •  Trient, parmi les données présentes, lesquelles garder et lesquelles enlever •  On peut obtenir: §  Des filtres simples : définition d’une fonction indiquant le critère de filtrage §  L’échantillonnage (sampling): création d’un petit ensemble d’enregistrements à partir d’un grand ensemble, en retenant des échantillons (comme la valeur la plus élevée d’un champs particulier) §  L’échantillonnage aléatoire : retenir un échantillon représentatif des données initiales §  Les listes Top-n Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 45 Présentation ✗ ✓ ✗ ✗ ✓ ✓ ✗ ✗ ✓
  • 46. Patrons de Filtrage •  Exemple de Filtrage Simple: §  Cas d’étude : fichier contenant tous les posts des utilisateurs sur un forum §  Filtre : Retenir les posts les plus courts, contenant une seule phrase o  Une phrase est un post qui ne contient aucune ponctuation de la forme: .!?, ou alors une seule à la fin. Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 46 Exemple
  • 47. Patrons de Filtrage •  Exemple: Top 10 §  Trouver parmi les différents posts des forums, les 10 posts les plus longs §  Dans une Base de données Relationnelle: o  Trier les données o  Extraire les 10 premières §  Map-Reduce (de la même manière qu’une sélection sportive) o  Chaque Mapper génère une liste Top-10 o  Le Reducer trouve les Top 10 globaux Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 47 Exemple
  • 48. Patrons de Récapitulation •  Permettent de vous donner une idée de haut niveau de vos données •  On distingue deux types: §  Index : Tels que les index à la fin d’un livre, ou les index utilisés par google pour représenter les pages web §  Récapitulation (ou résumé) numérique : par exemple: o  Chercher des chiffres, des comptes (combien dispose-t-on d’un certain type d’entrées) o  Min et Max o  Premier et dernier o  Moyenne o  … Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 48 Présentation
  • 49. Patrons de Récapitulation •  Les index permettent une recherche plus rapide •  Dans un livre: pour chaque mot donné, indiquer les différentes pages où se trouve ce mot •  Dans le web: on trouve des liens vers des pages web à partir d’un ensemble de mots clefs Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 49 Index
  • 50. Patrons de Récapitulation •  Exemple : Indexation des mots dans les posts d’un forum •  Mapper è Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 50 Index
  • 51. Patrons de Récapitulation •  Exemple : Indexation des mots dans les posts d’un forum •  Reducer è Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 51 Index
  • 52. Patrons de Récapitulation •  Peuvent être: §  Le nombre de mots, enregistrements… o  Souvent: la clef = l’objet à compter, et la valeur = 1 (nombre d’occurrences) §  Min-Max / Premier-Dernier §  La moyenne §  La médiane §  Écart type §  … •  Exemple de question: §  Y’a-t-il une relation entre le jour de la semaine et la somme dépensée par les clients? §  Mapper : clef = jour_de_la_semaine; valeur = somme_dépensée §  Reducer : calcul Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 52 Récapitulations Numériques
  • 53. Patrons de Récapitulation •  Possibilité d’utiliser un mélangeur (Combiner) entre les mappers et les reducers •  Permettent de réaliser la réduction en local dans chacun des DataNodes Mappers AVANT de faire appel au nœud réducteur principal. •  Exemple: pour calculer la moyenne des ventes par jour de la semaine: §  Sans Combiner o  Les Mappers parcourent les données, et affichent le couple (Jour_de_la_semaine, montant) o  Pour chaque jour, le Reducer conserve une somme et un compteur o  Il divise à la fin la somme par le compteur §  Avec Combiner o  Chaque nœud réalise une première réduction où les moyennes locales sont calculées o  Le Reducer final regroupe ces moyennes et synthétise la moyenne finale o  Nombre d’enregistrements envoyés au réducteur significativement réduit o  Temps nécessaire pour la réduction diminue Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 53 Mélangeur
  • 54. Patrons Structurels •  Utilisés quand les données proviennent d’une base de données structurée •  Plusieurs tables, donc plusieurs sources de données, liées par clef étrangère •  Les données des différentes tables sont exportées sous forme de fichiers délimités •  Le Mapper aura donc comme tâche de : §  Parcourir l’ensemble des fichiers correspondant aux tables de la base §  Extraire de chacune des entrées les données nécessaires, en utilisant comme clef la clef étrangère joignant les deux tables §  Afficher les données extraites des différentes tables, chacune sur une ligne, en créant un champs supplémentaire indiquant la source des données. •  Reducer : §  Fera l’opération de jointure entre les deux sources, en testant la provenance avec le champs supplémentaire (A ou B) Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 54 Présentation Id_user   Source  des  données  (A  si  de  la  table  1,  B  si  de   la  table  2)  
  • 55. EN CONCLUSION… Chp2 – Hadoop et MapReduce Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi Slide 55
  • 56. Hadoop… •  La gestion des défaillances : que ce soit au niveau du stockage ou traitement, les nœuds responsables de ces opérations sont automatiquement gérés en cas de défaillance. Nous avons donc une forte tolérance aux pannes. •  La sécurité et persistance des données : Grâce au concept « Rack Awarness », il n’y a plus de soucis de perte de données. •  La montée en charge: garantie d’une montée en charge maximale. •  La complexité réduite: capacité d'analyse et de traitement des données à grande échelle. •  Le coût réduit : Hadoop est open source, et malgré leur massivité et complexité, les données sont traitées efficacement et à très faible coût Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 56 Avantages
  • 57. Hadoop… •  Difficulté d’intégration avec d’autres systèmes informatiques: le transfert de données d’une structure Hadoop vers des bases de données traditionnelles est loin d’être trivial •  Administration complexe : Hadoop utilise son propre langage. L’entreprise doit donc développer une expertise spécifique Hadoop ou faire appel à des prestataires extérieurs •  Traitement de données différé et temps de latence important: Hadoop n’est pas fait pour l’analyse temps réel des données. •  Produit en développement continu : manque de maturité Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 57 Inconvénients
  • 58. Sources •  Cours §  Big Data Analytics – Lesson 1: What is Big Data, IBM, Big Data University §  Intro to Hadoop and MapReduce, Coursera, Udacity •  Présentations §  Introduction to YARN and MapReduce2, Cloudera Dr. Lilia SFAXI www.liliasfaxi.wix.com/liliasfaxi 58