SlideShare une entreprise Scribd logo
1  sur  43
MapReduce: Simplified
Data Processing on Large
Clusters
Présenté par: Mathieu Dumoulin
Université Laval, H2013
1
C’est l’histoire d’une jeune
compagnie…
• Des compétiteurs féroces et riches
• Doit traiter des TRÈS gros volumes de
données
• Des besoins en pleine évolution
• En expansion rapide
2
Vous la connaissez peut-
être…
3
Deux gros problèmes
1. Données à très grande échelle
2. Ressources financières limitées
4
Réfléchissons au
problème de taille
• On veut trouver les 5 mots les plus fréquents dans
une collection de textes.
• Faisons un petit algo en pseudo-code:
def wordCount(text):
counts = defaultdict(int)
for word in text:
counts[word] += 1
5
La croissance de taille est un
problème majeur
6
Problème SolutionTaille
• 100M mots
• 1000M mots
• 100MM mots
• 1000MM mots
• Plus encore!
• Pas de problèmes
• Mémoire insuffisante
• Processeur insuffisant
• 1 ordinateur
insuffisant
• Réseau
insuffisant, contrôleur
surchargé
• Naïve avec 1 seul
ordinateur
• Utiliser le
disque, Fenêtre
glissante
• Multithreading, éli
miner < N
• Distribuer le calcul
• ???
Le problème du coût
Quelques faits:
• Une grappe hyper
robuste coûte très cher
• ça brise quand même!
Une piste de solution:
• Est-ce possible d’utiliser
du matériel orienté
consommateur?
• Mais… quoi faire avec
les défaillances
7
Les défaillances à grande échelle:
Un problème incontournable
Mathieu Dumoulin 8
En fait
Une grappe de grande envergure n’est jamais
fonctionnelle à 100% quel que soit le prix
Mathieu Dumoulin 9
La solution de Google:
MapReduce (et GFS)
10
• Un framework C++
• Calcul distribué
automatiquement
• Grappe de milliers
d’ordinateurs PC standards
• Robuste aux défaillances
• Programmation simple
Plan
• Comment s’en servir?
• Retour sur WordCount
• Comment ça marche?
• Pourquoi ça marche?
• Et ça marche?
• MapReduce en action
• Conclusion
11
Comment s’en servir
Le modèle de programmation
L’exemple WordCount
12
La programmation
parallèle, pas facile…
• Coordination de la communication
• Gérer les défaillances matérielles
• Prendre et afficher des mesures sur la progression
des tâches
• Débogage
• Optimisation des applications
• Tirer profit de la localité des données
13
MapReduce: modèle de
programmation
• Entrée et sortie: des paires de clef-valeur (Key/value)
• Le programmeur spécifie 2 fonctions (et un main):
map (in_key, in_value) -> list(out_key, intermediate_value)
• Appliquer une transformation sur l’entrée
• Émettre une nouvelle paire clef-valeur intermédiaire en sortie
Reduce (out_key, list(intermediate_value)) -> list(out_value)
• Combiner les valeurs intermédiaires pour chaque clef
• Produire un ensemble de sortie qui combine tous les résultats
Mathieu Dumoulin 14
Exemple WordCount
public static class Map extends
Mapper<LongWritable, Text, Text, IntWritable> {
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map (LongWritable key, Text value, Context
context) throws Exception {
String line = value.toString();
StringTokenizer tokenizer = new StringTokenizer(line);
while (tokenizer.hasMoreTokens()) {
word.set(tokenizer.nextToken());
context.write(word, one);
}
}
}
15
Exemple WordCount
public static class Reduce extends
Reducer<Text, IntWritable, Text, IntWritable> {
public void reduce(Text key, Iterable<IntWritable> values,
Context context) throws Exception {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
context.write(key, new IntWritable(sum));
}
}
Mathieu Dumoulin 16
Comment ça marche?
Exécution d’une tâche MapReduce
17
Exécution de WordCount
18
Exécution d’une tâche
MapReduce
19
Pourquoi ça marche?
L’architecture de la grappe
NameNode: le contrôleur de la grappe
La robustesse: essentielle
Dans la pratique
Raffinements
20
Une grappe MapReduce:
Architecture
21
NameNode
• Un seul NameNode enregistre le metadata
• Garde toutes les informations sur les
DataNodes (block, owner, group, etc.)
• Tout est gardé en mémoire vive
• La taille de la grappe est limitée par la
mémoire vive de l’ordinateur NameNode
Data Node
• DataNodes store file contents
• Stored as opaque ‘blocks’ on the underlying
filesystem
• Different blocks of the same file will be
stored on different DataNodes
• Same block is stored on three (or more)
DataNodes for redundancy
Et les défaillances?
• Les DataNodes envoient un battement de
coeur au NameNode
• Le NameNode gère les DataNodes
activement
• Les défaillances sont transparentes aux
programmes utilisateurs
On transforme un groupe d’ordinateurs
individuellement peu fiables en une
grappe super fiable de façon générale
qui bénéficie à tous les utilisateurs de la
librairie automatiquement.
Dans la pratique
• Yahoo en 2009: MTBF moins de 1jour
• Google en 2009, taux de défaillances par année:
o Disque dur: 1-5%
o PC: 2-4%
Et avec MapReduce?
• A résisté à la perte simultanée de plus de 800
ordinateurs, aucune perte de travail!
25
Implémentation typique à
Google (2003-2004)
Mathieu Dumoulin
• 100-1000 serveurs (2 CPU Intel, 2-4GB RAM)
• Disques durs « ordinaires » IDE
26
Raffinement: Exécution locale
• Principe: Amener le code aux données
• Résultat: La bande passante totale d’une tâche peut
dépasser la vitesse maximale du réseau!
30 GB/s > 10 GB/s
27
Raffinement: Exécution
redondante
C’est possible d’aller plus vite en faisant plus de travail
en double:
• Les esclaves lents vont ralentir l’exécution de la
tâche entière:
o D’autres tâches utilisent les ressources à ce moment
o Disque dur ayant des erreurs récupérables
o Autres situations bizarres: processeur avec la cache désactivée (!!)
• Solution: vers la fin d’une phase, on relance toutes
les tâches en attente à des esclaves disponibles.
o Le premier qui finit une tâche « l’emporte »
Le résultat: une exécution totale
dramatiquement accélérée.
28
Raffinement: Sauter les
entrées problématiques
• Résultat: Les bugs dans les librairies peuvent
être gérées de façon élégante
• Principe: Amener le code aux données
• Politique de planification du maître:
o Demander au GFS l’adresse physique des répliques pour les blocs des
fichiers d’entrée
o Les tâches map sont généralement divisées en « split » de 64MB.
o Aiguiller les tâches pour que les maps s’exécutent sur des données locales
à la machine, ou sur le même routeur.
29
Autres raffinements
• Garanties sur l’ordre trié pour chaque partition
reduce.
• Compression des données intermédiaires
o La bande passante est un facteur limitant important
• Combination: reduce local à chaque machine
avant d’envoyer les valeurs intermédiaires sur le
réseau
• Possibilité d’exécution en mode local pour aider les
développeurs
• Compteurs
Lire l’article pour les détails…
30
Et ça marche?
Résultats expérimentaux
Métriques
Performance
Expérience de migration à MapReduce: PageRank
31
Performance
• Grappe de production de 1800 machines:
o 4GB de mémoire
o Processeurs double cœur 2GHz Xeon de Intel avec Hyperthreading
o 2x HDD 160GB IDE
o Accès au réseau: Gigabit Ethernet
o Bande passante entre groupes de serveurs (racks): 100 Gbps
• Mesures de performance:
o MR_Grep: Rechercher globalement les correspondances avec
l'expression rationnelle (en anglais, regular expression), et imprimer (print)
les lignes dans lesquelles elle correspond.
• Taille: 10 milliards de lignes, expression rare (92,000 lignes
correspondent)
o MR_Sort: Faire un tri sur 10 milliards d’éléments (TeraSort benchmark )
32
Métriques
33
MR_Sort
Normal Avec backup
200 processus
défaillants
34
Expérience: Migration de
l’indexeur de Google
• L’indexeur du moteur de recherche de Google a
été converti en ensemble de tâches MapReduce:
o Ensemble de 10, 14, 17, 21 opérations MapReduce
o Le nouveau code est beaucoup plus simple et facile à
comprendre
o Robustesse incluse automatiquement
o On peut accélérer le traitement en ajoutant des machines, sans
modifier le code.
35
MapReduce en action à
Google
Utilisation courante
36
MapReduce apprécié par
les ingénieurs de Google
Mathieu Dumoulin 37
Utilisation de la grappe MapReduce à Google 2003-2004
Nombredeprojets
Exemple: Google Maps
MapReduce est utilisé partout à Google, dont Google
Maps par exemple
Mathieu Dumoulin 38
En production à Google (2004)
• Number of jobs 29,423
• Average job completion time 634 secs
• Machine days used 79,186 days
• Input data read 3,288 TB
• Intermediate data produced 758 TB
• Output data written 193 TB
• Average worker machines per job 157
• Average worker deaths per job 1.2
• Average map tasks per job 3,351
• Average reduce tasks per job 55
• Unique map implementations 395
• Unique reduce implementations 269
• Unique map/reduce combinations 426
39
Conclusion
Forces et faiblesses
Retour sur les objectifs
Objectifs atteints
40
MapReduce: Pas une
panacée!
• Difficile
• Lent, peu
efficace
• Cher
• Alternatives
mieux
adaptées
41
• Pig et Hive plus facile!
• Domaine de recherche
active
o Dremel et BigQuery
• Une question d’échelle et
de besoins
• Bénéfices de la
standardisation
Conclusion: Objectifs de
MapReduce
• Peut grandir à des tailles de données gigantesques
(Petabytes)
• Économique: Utiliser du matériel standardisé et peu
cher
• Robuste
• Général
• Facile à utiliser pour les développeurs
42
Objectifs atteints!
• L’abstraction MapReduce est utile.
• Le traitement de données à grande échelle est
significativement simplifiée à Google
o Traitement de données à une échelle inédite à cette époque
• L’utilisateur est heureux: aucun souci avec les
détails difficiles. On peut se concentrer sur le
problème.
• L’utilisation de matériel informatique « ordinaire »
permet un ratio de puissance-coût qui dépasse de
beaucoup l’état de l’art.
43

Contenu connexe

Tendances

BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceLilia Sfaxi
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherLilia Sfaxi
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduceMathieu Dumoulin
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une IntroductionNicolas OGÉ
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureMicrosoft
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introductionfredcons
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : CassandraLilia 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
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopLilia Sfaxi
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkALTIC Altic
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Alexis Seigneurin
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.ithibnico
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 

Tendances (20)

BigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-ReduceBigData_TP1: Initiation à Hadoop et Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une Introduction
 
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows AzureBig Data: Hadoop Map / Reduce sur Windows et Windows Azure
Big Data: Hadoop Map / Reduce sur Windows et Windows Azure
 
Hadoop and friends : introduction
Hadoop and friends : introductionHadoop and friends : introduction
Hadoop and friends : introduction
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
BigData_TP4 : Cassandra
BigData_TP4 : CassandraBigData_TP4 : Cassandra
BigData_TP4 : Cassandra
 
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
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache SparkPlateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
Plateforme bigdata orientée BI avec Hortoworks Data Platform et Apache Spark
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
BigData_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)Spark (v1.3) - Présentation (Français)
Spark (v1.3) - Présentation (Français)
 
Stats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.itStats web avec Hive chez Scoop.it
Stats web avec Hive chez Scoop.it
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 

En vedette

Mémoire M2 Etude d'un cluster par sa configuration sociale
Mémoire M2 Etude d'un cluster par sa configuration socialeMémoire M2 Etude d'un cluster par sa configuration sociale
Mémoire M2 Etude d'un cluster par sa configuration socialeSophie Jaboeuf
 
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...Hajer Trabelsi
 
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Microsoft Décideurs IT
 
Présentation grappe web AG infopole cluster tic 2013
Présentation grappe web AG infopole cluster tic 2013Présentation grappe web AG infopole cluster tic 2013
Présentation grappe web AG infopole cluster tic 2013Thierry Pastorello
 
MapReduce au Niveau RP*
MapReduce au Niveau RP*MapReduce au Niveau RP*
MapReduce au Niveau RP*UHBC
 
Szarotka6
Szarotka6Szarotka6
Szarotka6a12
 
Prêtres et Missionnaires Convertis à l'Islam
Prêtres et Missionnaires Convertis à l'IslamPrêtres et Missionnaires Convertis à l'Islam
Prêtres et Missionnaires Convertis à l'IslamAzis MACh
 
Clusters mondiaux
Clusters mondiauxClusters mondiaux
Clusters mondiauxMaria Manar
 
الاسد وابن اوى والحمار
الاسد وابن اوى والحمارالاسد وابن اوى والحمار
الاسد وابن اوى والحمارmuhmadbdran
 
Cartes auto-organisée de Kohonen et clustering
Cartes auto-organisée de Kohonen et clusteringCartes auto-organisée de Kohonen et clustering
Cartes auto-organisée de Kohonen et clusteringtuxette
 
Flexible In-Situ Indexing for Hadoop via Elephant Twin
Flexible In-Situ Indexing for Hadoop via Elephant TwinFlexible In-Situ Indexing for Hadoop via Elephant Twin
Flexible In-Situ Indexing for Hadoop via Elephant TwinDmitriy Ryaboy
 
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012Integrating Hadoop Into the Enterprise – Hadoop Summit 2012
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012Jonathan Seidman
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...Patrick Guimonet
 
Presentation Tisic 2011
Presentation Tisic 2011Presentation Tisic 2011
Presentation Tisic 2011ticien
 
IBM Big Data Analytics Concepts and Use Cases
IBM Big Data Analytics Concepts and Use CasesIBM Big Data Analytics Concepts and Use Cases
IBM Big Data Analytics Concepts and Use CasesTony Pearson
 
Présentation Ezakus - Labo de l'édition
Présentation Ezakus - Labo de l'éditionPrésentation Ezakus - Labo de l'édition
Présentation Ezakus - Labo de l'éditionLabo de l'édition
 

En vedette (20)

Mémoire M2 Etude d'un cluster par sa configuration sociale
Mémoire M2 Etude d'un cluster par sa configuration socialeMémoire M2 Etude d'un cluster par sa configuration sociale
Mémoire M2 Etude d'un cluster par sa configuration sociale
 
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...Automatic Subspace Clustering of High Dimensional Data for DataMining Applic...
Automatic Subspace Clustering of High Dimensional Data for Data Mining Applic...
 
Clustering
ClusteringClustering
Clustering
 
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...Windows Server 2012, quelles évolutions pour les services de stockage et de c...
Windows Server 2012, quelles évolutions pour les services de stockage et de c...
 
Présentation grappe web AG infopole cluster tic 2013
Présentation grappe web AG infopole cluster tic 2013Présentation grappe web AG infopole cluster tic 2013
Présentation grappe web AG infopole cluster tic 2013
 
MapReduce au Niveau RP*
MapReduce au Niveau RP*MapReduce au Niveau RP*
MapReduce au Niveau RP*
 
Szarotka6
Szarotka6Szarotka6
Szarotka6
 
Prêtres et Missionnaires Convertis à l'Islam
Prêtres et Missionnaires Convertis à l'IslamPrêtres et Missionnaires Convertis à l'Islam
Prêtres et Missionnaires Convertis à l'Islam
 
Clusters mondiaux
Clusters mondiauxClusters mondiaux
Clusters mondiaux
 
الاسد وابن اوى والحمار
الاسد وابن اوى والحمارالاسد وابن اوى والحمار
الاسد وابن اوى والحمار
 
Cartes auto-organisée de Kohonen et clustering
Cartes auto-organisée de Kohonen et clusteringCartes auto-organisée de Kohonen et clustering
Cartes auto-organisée de Kohonen et clustering
 
Flexible In-Situ Indexing for Hadoop via Elephant Twin
Flexible In-Situ Indexing for Hadoop via Elephant TwinFlexible In-Situ Indexing for Hadoop via Elephant Twin
Flexible In-Situ Indexing for Hadoop via Elephant Twin
 
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012Integrating Hadoop Into the Enterprise – Hadoop Summit 2012
Integrating Hadoop Into the Enterprise – Hadoop Summit 2012
 
Bejaia
BejaiaBejaia
Bejaia
 
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
2008-10-02 Paris - Administration des applications critiques avec SQL Server ...
 
Presentation Tisic 2011
Presentation Tisic 2011Presentation Tisic 2011
Presentation Tisic 2011
 
La maison kabyle lounis
La maison kabyle lounisLa maison kabyle lounis
La maison kabyle lounis
 
IBM Big Data Analytics Concepts and Use Cases
IBM Big Data Analytics Concepts and Use CasesIBM Big Data Analytics Concepts and Use Cases
IBM Big Data Analytics Concepts and Use Cases
 
Intro to Apache Mahout
Intro to Apache MahoutIntro to Apache Mahout
Intro to Apache Mahout
 
Présentation Ezakus - Labo de l'édition
Présentation Ezakus - Labo de l'éditionPrésentation Ezakus - Labo de l'édition
Présentation Ezakus - Labo de l'édition
 

Similaire à MapReduce: Traitement de données distribué à grande échelle simplifié

Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataArrow Group
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfMissaouiWissal
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfAhmedToujani1
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfYounesOuladSayad1
 
L'optimisation énergétique des datacenter
L'optimisation énergétique des datacenterL'optimisation énergétique des datacenter
L'optimisation énergétique des datacenterekito
 
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
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxMarc Bojoly
 
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Amazon Web Services
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016Julien BLAIZE
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesSofian Djamaa
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAPôle Systematic Paris-Region
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB MongoDB
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMALoic Yon
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent Square
 
Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Loic Ortola
 
Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Microsoft Technet France
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 

Similaire à MapReduce: Traitement de données distribué à grande échelle simplifié (20)

Presentation Map Reduce
Presentation Map ReducePresentation Map Reduce
Presentation Map Reduce
 
Techday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big DataTechday Arrow Group: Hadoop & le Big Data
Techday Arrow Group: Hadoop & le Big Data
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
BigData_Technologies_PL.pdf
BigData_Technologies_PL.pdfBigData_Technologies_PL.pdf
BigData_Technologies_PL.pdf
 
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdfCHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
 
L'optimisation énergétique des datacenter
L'optimisation énergétique des datacenterL'optimisation énergétique des datacenter
L'optimisation énergétique des datacenter
 
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
 
Perfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptxPerfug BOF devoxx2017.pptx
Perfug BOF devoxx2017.pptx
 
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
Track 2 - Atelier 3 - Comment Ysance met le cloud au service du digital avec ...
 
Spad big data - sfds - 2016
Spad   big data - sfds - 2016Spad   big data - sfds - 2016
Spad big data - sfds - 2016
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop Performances
 
Wygday 2008
Wygday 2008Wygday 2008
Wygday 2008
 
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMAOsis18_Cloud : Virtualisation efficace d’architectures NUMA
Osis18_Cloud : Virtualisation efficace d’architectures NUMA
 
1
11
1
 
Réussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDBRéussir une montée en charge avec MongoDB
Réussir une montée en charge avec MongoDB
 
Introduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMAIntroduction à l'objet - Deuxième année ISIMA
Introduction à l'objet - Deuxième année ISIMA
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)Modern DevOps - kill the bottleneck (part 2/2)
Modern DevOps - kill the bottleneck (part 2/2)
 
Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance Exchange 2013 Dimensionnement et Performance
Exchange 2013 Dimensionnement et Performance
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 

Plus de Mathieu Dumoulin

Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...Mathieu Dumoulin
 
State of the Art Robot Predictive Maintenance with Real-time Sensor Data
State of the Art Robot Predictive Maintenance with Real-time Sensor DataState of the Art Robot Predictive Maintenance with Real-time Sensor Data
State of the Art Robot Predictive Maintenance with Real-time Sensor DataMathieu Dumoulin
 
MapR and Machine Learning Primer
MapR and Machine Learning PrimerMapR and Machine Learning Primer
MapR and Machine Learning PrimerMathieu Dumoulin
 
CEP - simplified streaming architecture - Strata Singapore 2016
CEP - simplified streaming architecture - Strata Singapore 2016CEP - simplified streaming architecture - Strata Singapore 2016
CEP - simplified streaming architecture - Strata Singapore 2016Mathieu Dumoulin
 
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...Mathieu Dumoulin
 
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...Mathieu Dumoulin
 
Distributed Deep Learning on Spark
Distributed Deep Learning on SparkDistributed Deep Learning on Spark
Distributed Deep Learning on SparkMathieu Dumoulin
 
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.comReal world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.comMathieu Dumoulin
 

Plus de Mathieu Dumoulin (8)

Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
Converged and Containerized Distributed Deep Learning With TensorFlow and Kub...
 
State of the Art Robot Predictive Maintenance with Real-time Sensor Data
State of the Art Robot Predictive Maintenance with Real-time Sensor DataState of the Art Robot Predictive Maintenance with Real-time Sensor Data
State of the Art Robot Predictive Maintenance with Real-time Sensor Data
 
MapR and Machine Learning Primer
MapR and Machine Learning PrimerMapR and Machine Learning Primer
MapR and Machine Learning Primer
 
CEP - simplified streaming architecture - Strata Singapore 2016
CEP - simplified streaming architecture - Strata Singapore 2016CEP - simplified streaming architecture - Strata Singapore 2016
CEP - simplified streaming architecture - Strata Singapore 2016
 
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...
Streaming Architecture to Connect Everything (Including Hybrid Cloud) - Strat...
 
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...
Real-World Machine Learning - Leverage the Features of MapR Converged Data Pl...
 
Distributed Deep Learning on Spark
Distributed Deep Learning on SparkDistributed Deep Learning on Spark
Distributed Deep Learning on Spark
 
Real world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.comReal world machine learning with Java for Fumankaitori.com
Real world machine learning with Java for Fumankaitori.com
 

MapReduce: Traitement de données distribué à grande échelle simplifié

  • 1. MapReduce: Simplified Data Processing on Large Clusters Présenté par: Mathieu Dumoulin Université Laval, H2013 1
  • 2. C’est l’histoire d’une jeune compagnie… • Des compétiteurs féroces et riches • Doit traiter des TRÈS gros volumes de données • Des besoins en pleine évolution • En expansion rapide 2
  • 3. Vous la connaissez peut- être… 3
  • 4. Deux gros problèmes 1. Données à très grande échelle 2. Ressources financières limitées 4
  • 5. Réfléchissons au problème de taille • On veut trouver les 5 mots les plus fréquents dans une collection de textes. • Faisons un petit algo en pseudo-code: def wordCount(text): counts = defaultdict(int) for word in text: counts[word] += 1 5
  • 6. La croissance de taille est un problème majeur 6 Problème SolutionTaille • 100M mots • 1000M mots • 100MM mots • 1000MM mots • Plus encore! • Pas de problèmes • Mémoire insuffisante • Processeur insuffisant • 1 ordinateur insuffisant • Réseau insuffisant, contrôleur surchargé • Naïve avec 1 seul ordinateur • Utiliser le disque, Fenêtre glissante • Multithreading, éli miner < N • Distribuer le calcul • ???
  • 7. Le problème du coût Quelques faits: • Une grappe hyper robuste coûte très cher • ça brise quand même! Une piste de solution: • Est-ce possible d’utiliser du matériel orienté consommateur? • Mais… quoi faire avec les défaillances 7
  • 8. Les défaillances à grande échelle: Un problème incontournable Mathieu Dumoulin 8
  • 9. En fait Une grappe de grande envergure n’est jamais fonctionnelle à 100% quel que soit le prix Mathieu Dumoulin 9
  • 10. La solution de Google: MapReduce (et GFS) 10 • Un framework C++ • Calcul distribué automatiquement • Grappe de milliers d’ordinateurs PC standards • Robuste aux défaillances • Programmation simple
  • 11. Plan • Comment s’en servir? • Retour sur WordCount • Comment ça marche? • Pourquoi ça marche? • Et ça marche? • MapReduce en action • Conclusion 11
  • 12. Comment s’en servir Le modèle de programmation L’exemple WordCount 12
  • 13. La programmation parallèle, pas facile… • Coordination de la communication • Gérer les défaillances matérielles • Prendre et afficher des mesures sur la progression des tâches • Débogage • Optimisation des applications • Tirer profit de la localité des données 13
  • 14. MapReduce: modèle de programmation • Entrée et sortie: des paires de clef-valeur (Key/value) • Le programmeur spécifie 2 fonctions (et un main): map (in_key, in_value) -> list(out_key, intermediate_value) • Appliquer une transformation sur l’entrée • Émettre une nouvelle paire clef-valeur intermédiaire en sortie Reduce (out_key, list(intermediate_value)) -> list(out_value) • Combiner les valeurs intermédiaires pour chaque clef • Produire un ensemble de sortie qui combine tous les résultats Mathieu Dumoulin 14
  • 15. Exemple WordCount public static class Map extends Mapper<LongWritable, Text, Text, IntWritable> { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map (LongWritable key, Text value, Context context) throws Exception { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); context.write(word, one); } } } 15
  • 16. Exemple WordCount public static class Reduce extends Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterable<IntWritable> values, Context context) throws Exception { int sum = 0; for (IntWritable val : values) { sum += val.get(); } context.write(key, new IntWritable(sum)); } } Mathieu Dumoulin 16
  • 17. Comment ça marche? Exécution d’une tâche MapReduce 17
  • 20. Pourquoi ça marche? L’architecture de la grappe NameNode: le contrôleur de la grappe La robustesse: essentielle Dans la pratique Raffinements 20
  • 22. NameNode • Un seul NameNode enregistre le metadata • Garde toutes les informations sur les DataNodes (block, owner, group, etc.) • Tout est gardé en mémoire vive • La taille de la grappe est limitée par la mémoire vive de l’ordinateur NameNode
  • 23. Data Node • DataNodes store file contents • Stored as opaque ‘blocks’ on the underlying filesystem • Different blocks of the same file will be stored on different DataNodes • Same block is stored on three (or more) DataNodes for redundancy
  • 24. Et les défaillances? • Les DataNodes envoient un battement de coeur au NameNode • Le NameNode gère les DataNodes activement • Les défaillances sont transparentes aux programmes utilisateurs On transforme un groupe d’ordinateurs individuellement peu fiables en une grappe super fiable de façon générale qui bénéficie à tous les utilisateurs de la librairie automatiquement.
  • 25. Dans la pratique • Yahoo en 2009: MTBF moins de 1jour • Google en 2009, taux de défaillances par année: o Disque dur: 1-5% o PC: 2-4% Et avec MapReduce? • A résisté à la perte simultanée de plus de 800 ordinateurs, aucune perte de travail! 25
  • 26. Implémentation typique à Google (2003-2004) Mathieu Dumoulin • 100-1000 serveurs (2 CPU Intel, 2-4GB RAM) • Disques durs « ordinaires » IDE 26
  • 27. Raffinement: Exécution locale • Principe: Amener le code aux données • Résultat: La bande passante totale d’une tâche peut dépasser la vitesse maximale du réseau! 30 GB/s > 10 GB/s 27
  • 28. Raffinement: Exécution redondante C’est possible d’aller plus vite en faisant plus de travail en double: • Les esclaves lents vont ralentir l’exécution de la tâche entière: o D’autres tâches utilisent les ressources à ce moment o Disque dur ayant des erreurs récupérables o Autres situations bizarres: processeur avec la cache désactivée (!!) • Solution: vers la fin d’une phase, on relance toutes les tâches en attente à des esclaves disponibles. o Le premier qui finit une tâche « l’emporte » Le résultat: une exécution totale dramatiquement accélérée. 28
  • 29. Raffinement: Sauter les entrées problématiques • Résultat: Les bugs dans les librairies peuvent être gérées de façon élégante • Principe: Amener le code aux données • Politique de planification du maître: o Demander au GFS l’adresse physique des répliques pour les blocs des fichiers d’entrée o Les tâches map sont généralement divisées en « split » de 64MB. o Aiguiller les tâches pour que les maps s’exécutent sur des données locales à la machine, ou sur le même routeur. 29
  • 30. Autres raffinements • Garanties sur l’ordre trié pour chaque partition reduce. • Compression des données intermédiaires o La bande passante est un facteur limitant important • Combination: reduce local à chaque machine avant d’envoyer les valeurs intermédiaires sur le réseau • Possibilité d’exécution en mode local pour aider les développeurs • Compteurs Lire l’article pour les détails… 30
  • 31. Et ça marche? Résultats expérimentaux Métriques Performance Expérience de migration à MapReduce: PageRank 31
  • 32. Performance • Grappe de production de 1800 machines: o 4GB de mémoire o Processeurs double cœur 2GHz Xeon de Intel avec Hyperthreading o 2x HDD 160GB IDE o Accès au réseau: Gigabit Ethernet o Bande passante entre groupes de serveurs (racks): 100 Gbps • Mesures de performance: o MR_Grep: Rechercher globalement les correspondances avec l'expression rationnelle (en anglais, regular expression), et imprimer (print) les lignes dans lesquelles elle correspond. • Taille: 10 milliards de lignes, expression rare (92,000 lignes correspondent) o MR_Sort: Faire un tri sur 10 milliards d’éléments (TeraSort benchmark ) 32
  • 34. MR_Sort Normal Avec backup 200 processus défaillants 34
  • 35. Expérience: Migration de l’indexeur de Google • L’indexeur du moteur de recherche de Google a été converti en ensemble de tâches MapReduce: o Ensemble de 10, 14, 17, 21 opérations MapReduce o Le nouveau code est beaucoup plus simple et facile à comprendre o Robustesse incluse automatiquement o On peut accélérer le traitement en ajoutant des machines, sans modifier le code. 35
  • 36. MapReduce en action à Google Utilisation courante 36
  • 37. MapReduce apprécié par les ingénieurs de Google Mathieu Dumoulin 37 Utilisation de la grappe MapReduce à Google 2003-2004 Nombredeprojets
  • 38. Exemple: Google Maps MapReduce est utilisé partout à Google, dont Google Maps par exemple Mathieu Dumoulin 38
  • 39. En production à Google (2004) • Number of jobs 29,423 • Average job completion time 634 secs • Machine days used 79,186 days • Input data read 3,288 TB • Intermediate data produced 758 TB • Output data written 193 TB • Average worker machines per job 157 • Average worker deaths per job 1.2 • Average map tasks per job 3,351 • Average reduce tasks per job 55 • Unique map implementations 395 • Unique reduce implementations 269 • Unique map/reduce combinations 426 39
  • 40. Conclusion Forces et faiblesses Retour sur les objectifs Objectifs atteints 40
  • 41. MapReduce: Pas une panacée! • Difficile • Lent, peu efficace • Cher • Alternatives mieux adaptées 41 • Pig et Hive plus facile! • Domaine de recherche active o Dremel et BigQuery • Une question d’échelle et de besoins • Bénéfices de la standardisation
  • 42. Conclusion: Objectifs de MapReduce • Peut grandir à des tailles de données gigantesques (Petabytes) • Économique: Utiliser du matériel standardisé et peu cher • Robuste • Général • Facile à utiliser pour les développeurs 42
  • 43. Objectifs atteints! • L’abstraction MapReduce est utile. • Le traitement de données à grande échelle est significativement simplifiée à Google o Traitement de données à une échelle inédite à cette époque • L’utilisateur est heureux: aucun souci avec les détails difficiles. On peut se concentrer sur le problème. • L’utilisation de matériel informatique « ordinaire » permet un ratio de puissance-coût qui dépasse de beaucoup l’état de l’art. 43