SlideShare una empresa de Scribd logo
1 de 29
Descargar para leer sin conexión
Oktay Istanbullu – Hugues Le Bars
Yahoo! Technicals
Hadoop: Introduction
- 2 -
Hadoop: Introduction
•  Hadoop, un projet open source
•  Hadoop et Yahoo!
•  Hadoop Core
•  HDFS
•  MapReduce: Principes de base et implémentation
Hadoop
•  Hadoop et Java
•  Hadoop à Yahoo!
- 3 -
Hadoop: Projet open source
•  Hadoop: composante de Nutch, partie recherche internet du
projet Lucene.
•  Lucene http://lucene.apache.org/
–  Open source search software development
–  Lucene Java
–  Nutch basé sur Lucene Java, créé en 2003
–  Adoption de Lucene assez étendue, notamment par wikipedia.
•  Hadoop a été créé par Doug Cutting, actuellement employé
à Yahoo!
–  Yahoo! (d’abord Overture) soutien le développement de Nutch
–  Développement du NDFS: Nutch Distributed File System, basé
sur MapReduce de Google. Naissance de Hadoop.
- 4 -
Hadoop: Projet open source
http://hadoop.apache.org/
•  23 Janvier 2008 - Hadoop devient un des projets de premier
plan de la fondation apache
•  Plusieurs sous projets lui sont rattachés:
–  Hadoop Core: HDFS + Support pour MapReduce Filesystems
–  Hbase: Base de données distribuée
–  Pig: langage et framework dediés aux applications distribuées
–  ZooKeeper: coordination haute disponibilité et fiable
•  Plusieurs partenaires importants: Yahoo!, Facebook, IBM,
Quantcast, …
- 5 -
Hadoop et Yahoo!
•  Plusieurs groupes implémentaient déjà une solution de grid
computing (open source ou non)
•  Formation du Yahoo! Grid Computing
•  Investissement important dans Hadoop
•  Pourquoi l’open source ?
–  La plupart des composants logiciels utilisés par Yahoo! Sont
déjà open source (Apache, Mysql, …)
–  Ces solutions étaient potentiellement plus avancées que nos
propres solutions
–  Investissement existant de grands noms de l’industrie et
partenaires ( Ebay, quantcast, internet archive …)
–  Moyen d’entrer dans le domaine avec un investissement
minimum
- 6 -
Hadoop Core
•  Hadoop Core = HDFS + Map Reduce
- 7 -
HDFS: Hadoop Distributed File System
Système de fichiers distribué, les fichiers sont divisés en blocs puis
répartis sur un cluster
•  Prérequis:
–  Tolérance aux pannes
•  Cluster de grande taille, machines de base => probabilité de panne assez
haute. La tolérance est donc essentielle dès le design.
–  Lecture d’un fichier en continu (streaming)
•  Optimisation pour les gros fichiers et les applications les traitant d’un bout
à l’autre (tous les cas pratiques).
–  Taille moyenne des fichiers en GB ou TB
–  Toute écriture de fichier est unique, lectures multiples
–  “Moving Computation is Cheaper than Moving Data”
•  Traiter les données où elles se trouvent
•  Lorsque les données d’un programmes sont de taille importante, le point
bloquant est le débit en lecture, il convient de ne pas l’aggraver.
–  Portable: supporte un parc hétérogène de machines
- 8 -
HDFS: Architecture
- 9 -
HDFS: Architecture maître esclave
•  NameNode (Maître)
–  Unique, un NameNode par cluster
–  Gère les noms de fichiers
•  { nom de fichier classique, nombre de copies, blocks }
Ex: {/home/logs/20081112-1, 3, {1, 7, 5} }
–  Gère toutes les opérations classiques: open/close/rename, répertoires
et le nombre de copies (replication factor)
–  Reçoit un message régulier des DataNode et maintient une table
précise de leur état
–  Gère la réplication des blocs
–  Persistance des données
•  DataNode (Esclave)
–  Exécute les lectures/écritures des blocs par les clients
–  Crée/efface/réplique les blocs. N’ont à gérer que des blocs.
- 10 -
HDFS: Architecture
•  Lors de l’écriture d’un fichier, celui-ci est d’abord écrit dans un fichier
temporaire au sein du client lui-même. Lorsque sa taille atteint celle d’un
bloc, le NameNode est contacté, il crée le fichier dans HDFS et retourne
un DataNode ID où transférer le bloc. Un tel buffering évite les
congestions trop rapides.
•  Le NameNode essaie de placer les blocs selon leurs position dans les
racks (si 3: 2 +1). Eviter de tout avoir dans le même rack, éviter 3 racks
différents pour la tolérance aux pannes, et pour éviter un traffic entre les
racks trop important.
- 11 -
MapReduce [8] : Principes
•  Modèle de programmation pour
traiter et générer beaucoup de
données
•  L’utilisateur fournit:
–  les données,
–  une fonction Map qui permet
de générer un ensemble clé/
valeur
–  une fonction Reduce qui
permet de réduire plusieurs
ensembles générés par Map
en un seul
•  Le framework découpe les
données, parallélise les tâches et
génère un résultat
•  Ex: si k1: nom du fichier et v1 son
contenu
Map(string k1, string v1) {
for each word w in v1:
EmitIntermediate(w, « 1 »)
}
Reduce(k2, Iterator v2) {
int result = 0;
for each v in v2:
result += 1;
Emit(AsString(result));
}
=> Nombre d’occurrences de chaque
mot
- 12 -
Hadoop Map-Reduce
- 13 -
Hadoop Map-Reduce
•  Le développeur fournit:
–  Les fonctions Map et Reduce et un
ensemble de données en entrée
•  Workflow
–  1ere étape: lecture des données
{ [clé1, valeur1], … }
–  Etape de Mapping: exécution de la
fonction Map => nouvel ensemble
de { [clé1, valeur1], … }
–  Distribution des [clé,valeurs] vers les
noeuds de traitement
–  Etape Reduce combines toutes les
paires à clé identique vers une
nouvelle liste clé/valeur réduite.
–  Etape d’écriture des clés/valeurs
dans des fichiers.
•  Toutes les étapes sont distribuées
sur plusieurs tâches
–  Le Framework assure le scheduling
des tâches dans le cluster
–  Le Framework assure la tolérance
aux pannes.
Input 0
Map 0
Input 1
Map 1
Input 2
Map 2
Reduce 0 Reduce 1
Out 0 Out 1
Shuffle
- 14 -
Map-Reduce features
•  Division des tâches en Map/Reduce
–  Meilleure répartition de charge
–  Récupération des erreurs plus rapide
•  Traiter les données là où elles se trouvent
–  Le point bloquant est le débit de lecture/écriture.
–  Map-Reduce + DFS y est très efficace:
•  Map-Reduce sait où se trouvent les données
•  Les tâches sont plannifiées aussi proche des données que
possible
•  Ré-exécution et exécution spéculative
–  Les noeuds moins performant d’un cluster ont tendance à
ralentir toute l’exécution où à amener des erreurs
–  Hadoop re-exécute les tâches au besoin
–  Hadoop exécute plusieurs instances des dernières tâches et
prend les résultats de la plus rapide
- 15 -
Hadoop Map-Reduce: Architecture
•  Architecture Maître/Esclaves
•  Map-Reduce “Jobtracker”: Maître
–  Collecte les tâches Map/Reduce
–  Les assigne aux TaskTrackers
–  Supervise les tâches ainsi que l’état des tasktracker, re-
exécute celles qui ont échouées
–  Il est unique
•  Map-Reduce “Tasktrackers”: Esclaves
–  Exécute les tâches Map ou Reduce à la demande du
JobTracker
–  Supervise le stockage et la transmission des données de
résultats intermédiaires
- 16 -
Hadoop HDFS + MR cluster
D D D DTT
JobTracker
Namenode
Machines with Datanodes and Tasktrackers
T T TD
Client
Job Submission
HTTP Monitoring UI
- 17 -
Exemple: Wordcount
// Map
public static class Map extends MapReduceBase implements
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,
OutputCollector<Text, IntWritable> output, Reporter reporter) throws
IOException {

 String line = value.toString();

 StringTokenizer tokenizer = new StringTokenizer(line);

 while (tokenizer.hasMoreTokens()) {

 word.set(tokenizer.nextToken());

 output.collect(word, one); // output object collects data

 }

 }

 }
- 18 -
Wordcount: Reduce

 public static class Reduce extends MapReduceBase implements
Reducer<Text, IntWritable, Text, IntWritable> {

 public void reduce(Text key, Iterator<IntWritable> values,
OutputCollector<Text, IntWritable> output, Reporter reporter) throws
IOException {

 int sum = 0;

 while (values.hasNext()) {

 sum += values.next().get();

 }

 output.collect(key, new IntWritable(sum));

 }

 }
- 19 -
Wordcount: Exécution
public static void main(String[] args) throws Exception {

 JobConf conf = new JobConf(WordCount.class);

 conf.setJobName("wordcount");

 conf.setOutputKeyClass(Text.class);

 conf.setOutputValueClass(IntWritable.class);

 conf.setMapperClass(Map.class);

 conf.setCombinerClass(Reduce.class); // local aggregation after
Map (decrease size of the data)

 conf.setReducerClass(Reduce.class);

 conf.setInputFormat(TextInputFormat.class); // Input format: Text

 conf.setOutputFormat(TextOutputFormat.class); // Output: Text

 FileInputFormat.setInputPaths(conf, new Path(args[0]));

 FileOutputFormat.setOutputPath(conf, new Path(args[1]));

 JobClient.runJob(conf);

 }
- 20 -
Hadoop est développé en Java
•  Hadoop est écrit en java
–  Tourne sur Linux, Window, BSD, MacOS…
–  Support Java pour FreeBSD6
•  Mais il supporte plusieurs autres langages:
–  C++ via SWIG
–  Streaming: commandes Unix (42% des utilisations à Yahoo!)
–  PIG (28%, à égalité avec Java)
•  Java est un avantage:
–  Les projets open source les plus récents sont écrits en java
–  La rapidité d’exécution n’est pas le point bloquant: limités par le réseau et
la vitesse d’écriture sur le disque.
–  Supporte d’autres langages.
- 21 -
Hadoop à Yahoo!
•  Jan 2006 Doug Cutting devient employé de Yahoo!
•  Près d’un membre du PMC sur deux est un Yahoo!
•  Un blog dédié:
http://developer.yahoo.net/blogs/hadoop/
•  Utilisation pour:
–  La recherche internet
–  L’analyse des logs
–  Ads matching
–  Plateforme ouverte disponible à tous les équipes produit
Yahoo!
- 22 -
Hadoop à Yahoo!
•  17k+ machines
•  + grand cluster: 2000 nœuds.
4000 nœuds en phase de
test.
•  Plusieurs PetaOctets de
données (compressées,
déduppliquées)
•  Centaines de milliers de
tâches Hadoop tous les mois.
- 23 -
Webmap utilise Hadoop
•  Webmap est le graphe regroupant toutes les adresses
connues par le moteur de recherche Yahoo!
•  Il est mis à jour tous les jours grâce à une centaine de
tâches Map/Reduce
•  Hadoop est extensible:
–  1 trilliard de nœuds dans le graphe.
–  Taille du fichier résultat: 300 TB compressé
–  10000 cores
–  Utilise 5 PB d’espace disque
•  Développé en C++ / Hadoop
- 24 -
Intérêt de la communauté croissant
- 25 -
Et Contributions croissantes
- 26 -
Hadoop: dernières avancées
4000 nœuds!
HDFS Cluster Statistics
Capacity : 14.25 PB
DFS Remaining : 10.61 PB
DFS Used : 233.44 TB
DFS Used% : 1.6 %
Live Nodes : 4049
Dead Nodes : 226
Map-Reduce Cluster Statistics
Nodes: 3561
Map Slots: 4 slots per node
Reduce Slots: 4 slots per node
Améliorations continues
- 27 -
Hadoop: Projet Open Source Apache
•  Apache gère des projets pour la communauté:
–  Les utilisateurs
–  Les contributeurs (soumettent des patches)
–  Les committeurs (peuvent les committer)
–  Le Project Management Committee: ses membres sont des
committeurs et peuvent en élire de nouveaux, ils décident
aussi des releases.
•  Devenez membres! … Au mérite, accessible à tous.
•  Intérêt croissant de la communauté. Contribuez!
•  http://hadoop.apache.org/
•  http://developer.yahoo.net/blogs/hadoop/
- 28 -
Sources [1]
1.  http://en.wikipedia.org/wiki/Doug_Cutting
2.  http://blog.lucene.com/ Le Blog de Doug Cutting
3.  http://lucene.apache.org/ Lucene
4.  http://en.wikipedia.org/wiki/Lucene Wikipedia Lucene
5.  http://lucene.apache.org/nutch/ Nutch
6.  http://en.wikipedia.org/wiki/Nutch Wikipedia Nutch
7.  http://labs.google.com/papers/gfs.html Google File System
8.  http://labs.google.com/papers/mapreduce.html MapReduce
9.  http://en.wikipedia.org/wiki/Hadoop Wikipedia Hadoop
10.  http://radar.oreilly.com/archives/2007/08/yahoos-bet-on-h.html
11.  http://wiki.apache.org/hadoop/HadoopPresentations
- 29 -
Sources [2]
•  http://wiki.apache.org/hadoop-data/attachments/HadoopPresentations/
attachments/HadoopEBIG-Oct2008.pdf Introduction à Hadoop à l’East
Bay Innovation Group par Owen O’Malley

Más contenido relacionado

La actualidad más candente

Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop QuébecMathieu Dumoulin
 
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
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceLilia Sfaxi
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - IntroductionBlandine Larbret
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une IntroductionNicolas OGÉ
 
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...OCTO Technology
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
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
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introOlivier Mallassi
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduceMathieu 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
 
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_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : SparkLilia Sfaxi
 
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
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2Amal Abid
 

La actualidad más candente (20)

Presentation Hadoop Québec
Presentation Hadoop QuébecPresentation Hadoop Québec
Presentation Hadoop Québec
 
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 + R
HADOOP + RHADOOP + R
HADOOP + R
 
BigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-ReduceBigData_Chp2: Hadoop & Map-Reduce
BigData_Chp2: Hadoop & Map-Reduce
 
Hadoop Hbase - Introduction
Hadoop Hbase - IntroductionHadoop Hbase - Introduction
Hadoop Hbase - Introduction
 
Big Data : Une Introduction
Big Data : Une IntroductionBig Data : Une Introduction
Big Data : Une Introduction
 
Tech day hadoop, Spark
Tech day hadoop, SparkTech day hadoop, Spark
Tech day hadoop, Spark
 
Hadoop
HadoopHadoop
Hadoop
 
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
Softshake 2013 - Yarn dans la vraie vie, retour d'expérience et bonnes pratiq...
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
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
 
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -introNosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
Nosql, hadoop, map reduce, hbase, sqoop, voldemort, cassandra -intro
 
Introduction aux algorithmes map reduce
Introduction aux algorithmes map reduceIntroduction aux algorithmes map reduce
Introduction aux algorithmes map reduce
 
BigData_Chp5: Putting it all together
BigData_Chp5: Putting it all togetherBigData_Chp5: Putting it all together
BigData_Chp5: Putting it all together
 
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_TP3 : Spark
BigData_TP3 : SparkBigData_TP3 : Spark
BigData_TP3 : Spark
 
Hortonwork
HortonworkHortonwork
Hortonwork
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
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)
 
Cours Big Data Chap2
Cours Big Data Chap2Cours Big Data Chap2
Cours Big Data Chap2
 

Similar a Hadoop Introduction in Paris

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
 
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
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesSofian Djamaa
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribuesLê Anh
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KJulien Anguenot
 
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
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoopPatrick Bury
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
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
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Jérôme Petazzoni
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...adri1s
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.xDr Hajji Hicham
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Jérôme Petazzoni
 

Similar a Hadoop Introduction in Paris (20)

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
 
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
 
PerfUG - Hadoop Performances
PerfUG - Hadoop PerformancesPerfUG - Hadoop Performances
PerfUG - Hadoop Performances
 
Hadoop
HadoopHadoop
Hadoop
 
Chapitre 2 hadoop
Chapitre 2 hadoopChapitre 2 hadoop
Chapitre 2 hadoop
 
Presentation des outils traitements distribues
Presentation des outils traitements distribuesPresentation des outils traitements distribues
Presentation des outils traitements distribues
 
Architecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.KArchitecture Big Data open source S.M.A.C.K
Architecture Big Data open source S.M.A.C.K
 
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
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
10 big data hadoop
10 big data hadoop10 big data hadoop
10 big data hadoop
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
spark_intro_1208
spark_intro_1208spark_intro_1208
spark_intro_1208
 
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 )
 
Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015Spark - Ippevent 19-02-2015
Spark - Ippevent 19-02-2015
 
Docker en Production (Docker Paris)
Docker en Production (Docker Paris)Docker en Production (Docker Paris)
Docker en Production (Docker Paris)
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
Docker nice meetup #1   construire, déployer et exécuter vos applications, ...Docker nice meetup #1   construire, déployer et exécuter vos applications, ...
Docker nice meetup #1 construire, déployer et exécuter vos applications, ...
 
Distributed computing with Spark 2.x
Distributed computing with Spark 2.xDistributed computing with Spark 2.x
Distributed computing with Spark 2.x
 
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
Docker : quels enjeux pour le stockage et réseau ? Paris Open Source Summit ...
 

Más de Ted Drake

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Ted Drake
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Ted Drake
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessTed Drake
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid Ted Drake
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designTed Drake
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibilityTed Drake
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible ColorsTed Drake
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yTed Drake
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Ted Drake
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Ted Drake
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First InnovationTed Drake
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday taskTed Drake
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsTed Drake
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019Ted Drake
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitTed Drake
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down AccessibilityTed Drake
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Ted Drake
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Ted Drake
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleTed Drake
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupTed Drake
 

Más de Ted Drake (20)

Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
Introduce Trauma-Informed Design to Your Organization - CSUN ATC 2024
 
Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023Transforming Accessibility one lunch at a tiime - CSUN 2023
Transforming Accessibility one lunch at a tiime - CSUN 2023
 
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illnessInclusive Design for cognitive disabilities, neurodiversity, and chronic illness
Inclusive Design for cognitive disabilities, neurodiversity, and chronic illness
 
Inclusive design for Long Covid
 Inclusive design for Long Covid  Inclusive design for Long Covid
Inclusive design for Long Covid
 
Covid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive designCovid 19, brain fog, and inclusive design
Covid 19, brain fog, and inclusive design
 
Customer obsession and accessibility
Customer obsession and accessibilityCustomer obsession and accessibility
Customer obsession and accessibility
 
The Saga of Accessible Colors
The Saga of Accessible ColorsThe Saga of Accessible Colors
The Saga of Accessible Colors
 
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11yArtificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
Artificial Intelligence and Accessibility - GAAD 2020 - Hello A11y
 
Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program Expand your outreach with an accessibility champions program
Expand your outreach with an accessibility champions program
 
Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating Intuit's Accessibility Champion Program - Coaching and Celebrating
Intuit's Accessibility Champion Program - Coaching and Celebrating
 
Accessibility First Innovation
Accessibility First InnovationAccessibility First Innovation
Accessibility First Innovation
 
Inclusive customer interviews make it your friday task
Inclusive customer interviews  make it your friday taskInclusive customer interviews  make it your friday task
Inclusive customer interviews make it your friday task
 
Coaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility ChampionsCoaching and Celebrating Accessibility Champions
Coaching and Celebrating Accessibility Champions
 
Accessibility statements and resource publishing best practices csun 2019
Accessibility statements and resource publishing best practices   csun 2019Accessibility statements and resource publishing best practices   csun 2019
Accessibility statements and resource publishing best practices csun 2019
 
Raising Accessibility Awareness at Intuit
Raising Accessibility Awareness at IntuitRaising Accessibility Awareness at Intuit
Raising Accessibility Awareness at Intuit
 
Trickle Down Accessibility
Trickle Down AccessibilityTrickle Down Accessibility
Trickle Down Accessibility
 
Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018Trickle-Down Accessibility - CSUN 2018
Trickle-Down Accessibility - CSUN 2018
 
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
Accessibility metrics Accessibility Data Metrics and Reporting – Industry Bes...
 
Mystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessibleMystery Meat 2.0 – Making hidden mobile interactions accessible
Mystery Meat 2.0 – Making hidden mobile interactions accessible
 
React Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native MeetupReact Native Accessibility - San Diego React and React Native Meetup
React Native Accessibility - San Diego React and React Native Meetup
 

Hadoop Introduction in Paris

  • 1. Oktay Istanbullu – Hugues Le Bars Yahoo! Technicals Hadoop: Introduction
  • 2. - 2 - Hadoop: Introduction •  Hadoop, un projet open source •  Hadoop et Yahoo! •  Hadoop Core •  HDFS •  MapReduce: Principes de base et implémentation Hadoop •  Hadoop et Java •  Hadoop à Yahoo!
  • 3. - 3 - Hadoop: Projet open source •  Hadoop: composante de Nutch, partie recherche internet du projet Lucene. •  Lucene http://lucene.apache.org/ –  Open source search software development –  Lucene Java –  Nutch basé sur Lucene Java, créé en 2003 –  Adoption de Lucene assez étendue, notamment par wikipedia. •  Hadoop a été créé par Doug Cutting, actuellement employé à Yahoo! –  Yahoo! (d’abord Overture) soutien le développement de Nutch –  Développement du NDFS: Nutch Distributed File System, basé sur MapReduce de Google. Naissance de Hadoop.
  • 4. - 4 - Hadoop: Projet open source http://hadoop.apache.org/ •  23 Janvier 2008 - Hadoop devient un des projets de premier plan de la fondation apache •  Plusieurs sous projets lui sont rattachés: –  Hadoop Core: HDFS + Support pour MapReduce Filesystems –  Hbase: Base de données distribuée –  Pig: langage et framework dediés aux applications distribuées –  ZooKeeper: coordination haute disponibilité et fiable •  Plusieurs partenaires importants: Yahoo!, Facebook, IBM, Quantcast, …
  • 5. - 5 - Hadoop et Yahoo! •  Plusieurs groupes implémentaient déjà une solution de grid computing (open source ou non) •  Formation du Yahoo! Grid Computing •  Investissement important dans Hadoop •  Pourquoi l’open source ? –  La plupart des composants logiciels utilisés par Yahoo! Sont déjà open source (Apache, Mysql, …) –  Ces solutions étaient potentiellement plus avancées que nos propres solutions –  Investissement existant de grands noms de l’industrie et partenaires ( Ebay, quantcast, internet archive …) –  Moyen d’entrer dans le domaine avec un investissement minimum
  • 6. - 6 - Hadoop Core •  Hadoop Core = HDFS + Map Reduce
  • 7. - 7 - HDFS: Hadoop Distributed File System Système de fichiers distribué, les fichiers sont divisés en blocs puis répartis sur un cluster •  Prérequis: –  Tolérance aux pannes •  Cluster de grande taille, machines de base => probabilité de panne assez haute. La tolérance est donc essentielle dès le design. –  Lecture d’un fichier en continu (streaming) •  Optimisation pour les gros fichiers et les applications les traitant d’un bout à l’autre (tous les cas pratiques). –  Taille moyenne des fichiers en GB ou TB –  Toute écriture de fichier est unique, lectures multiples –  “Moving Computation is Cheaper than Moving Data” •  Traiter les données où elles se trouvent •  Lorsque les données d’un programmes sont de taille importante, le point bloquant est le débit en lecture, il convient de ne pas l’aggraver. –  Portable: supporte un parc hétérogène de machines
  • 8. - 8 - HDFS: Architecture
  • 9. - 9 - HDFS: Architecture maître esclave •  NameNode (Maître) –  Unique, un NameNode par cluster –  Gère les noms de fichiers •  { nom de fichier classique, nombre de copies, blocks } Ex: {/home/logs/20081112-1, 3, {1, 7, 5} } –  Gère toutes les opérations classiques: open/close/rename, répertoires et le nombre de copies (replication factor) –  Reçoit un message régulier des DataNode et maintient une table précise de leur état –  Gère la réplication des blocs –  Persistance des données •  DataNode (Esclave) –  Exécute les lectures/écritures des blocs par les clients –  Crée/efface/réplique les blocs. N’ont à gérer que des blocs.
  • 10. - 10 - HDFS: Architecture •  Lors de l’écriture d’un fichier, celui-ci est d’abord écrit dans un fichier temporaire au sein du client lui-même. Lorsque sa taille atteint celle d’un bloc, le NameNode est contacté, il crée le fichier dans HDFS et retourne un DataNode ID où transférer le bloc. Un tel buffering évite les congestions trop rapides. •  Le NameNode essaie de placer les blocs selon leurs position dans les racks (si 3: 2 +1). Eviter de tout avoir dans le même rack, éviter 3 racks différents pour la tolérance aux pannes, et pour éviter un traffic entre les racks trop important.
  • 11. - 11 - MapReduce [8] : Principes •  Modèle de programmation pour traiter et générer beaucoup de données •  L’utilisateur fournit: –  les données, –  une fonction Map qui permet de générer un ensemble clé/ valeur –  une fonction Reduce qui permet de réduire plusieurs ensembles générés par Map en un seul •  Le framework découpe les données, parallélise les tâches et génère un résultat •  Ex: si k1: nom du fichier et v1 son contenu Map(string k1, string v1) { for each word w in v1: EmitIntermediate(w, « 1 ») } Reduce(k2, Iterator v2) { int result = 0; for each v in v2: result += 1; Emit(AsString(result)); } => Nombre d’occurrences de chaque mot
  • 12. - 12 - Hadoop Map-Reduce
  • 13. - 13 - Hadoop Map-Reduce •  Le développeur fournit: –  Les fonctions Map et Reduce et un ensemble de données en entrée •  Workflow –  1ere étape: lecture des données { [clé1, valeur1], … } –  Etape de Mapping: exécution de la fonction Map => nouvel ensemble de { [clé1, valeur1], … } –  Distribution des [clé,valeurs] vers les noeuds de traitement –  Etape Reduce combines toutes les paires à clé identique vers une nouvelle liste clé/valeur réduite. –  Etape d’écriture des clés/valeurs dans des fichiers. •  Toutes les étapes sont distribuées sur plusieurs tâches –  Le Framework assure le scheduling des tâches dans le cluster –  Le Framework assure la tolérance aux pannes. Input 0 Map 0 Input 1 Map 1 Input 2 Map 2 Reduce 0 Reduce 1 Out 0 Out 1 Shuffle
  • 14. - 14 - Map-Reduce features •  Division des tâches en Map/Reduce –  Meilleure répartition de charge –  Récupération des erreurs plus rapide •  Traiter les données là où elles se trouvent –  Le point bloquant est le débit de lecture/écriture. –  Map-Reduce + DFS y est très efficace: •  Map-Reduce sait où se trouvent les données •  Les tâches sont plannifiées aussi proche des données que possible •  Ré-exécution et exécution spéculative –  Les noeuds moins performant d’un cluster ont tendance à ralentir toute l’exécution où à amener des erreurs –  Hadoop re-exécute les tâches au besoin –  Hadoop exécute plusieurs instances des dernières tâches et prend les résultats de la plus rapide
  • 15. - 15 - Hadoop Map-Reduce: Architecture •  Architecture Maître/Esclaves •  Map-Reduce “Jobtracker”: Maître –  Collecte les tâches Map/Reduce –  Les assigne aux TaskTrackers –  Supervise les tâches ainsi que l’état des tasktracker, re- exécute celles qui ont échouées –  Il est unique •  Map-Reduce “Tasktrackers”: Esclaves –  Exécute les tâches Map ou Reduce à la demande du JobTracker –  Supervise le stockage et la transmission des données de résultats intermédiaires
  • 16. - 16 - Hadoop HDFS + MR cluster D D D DTT JobTracker Namenode Machines with Datanodes and Tasktrackers T T TD Client Job Submission HTTP Monitoring UI
  • 17. - 17 - Exemple: Wordcount // Map public static class Map extends MapReduceBase implements 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, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { String line = value.toString(); StringTokenizer tokenizer = new StringTokenizer(line); while (tokenizer.hasMoreTokens()) { word.set(tokenizer.nextToken()); output.collect(word, one); // output object collects data } } }
  • 18. - 18 - Wordcount: Reduce public static class Reduce extends MapReduceBase implements Reducer<Text, IntWritable, Text, IntWritable> { public void reduce(Text key, Iterator<IntWritable> values, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { int sum = 0; while (values.hasNext()) { sum += values.next().get(); } output.collect(key, new IntWritable(sum)); } }
  • 19. - 19 - Wordcount: Exécution public static void main(String[] args) throws Exception { JobConf conf = new JobConf(WordCount.class); conf.setJobName("wordcount"); conf.setOutputKeyClass(Text.class); conf.setOutputValueClass(IntWritable.class); conf.setMapperClass(Map.class); conf.setCombinerClass(Reduce.class); // local aggregation after Map (decrease size of the data) conf.setReducerClass(Reduce.class); conf.setInputFormat(TextInputFormat.class); // Input format: Text conf.setOutputFormat(TextOutputFormat.class); // Output: Text FileInputFormat.setInputPaths(conf, new Path(args[0])); FileOutputFormat.setOutputPath(conf, new Path(args[1])); JobClient.runJob(conf); }
  • 20. - 20 - Hadoop est développé en Java •  Hadoop est écrit en java –  Tourne sur Linux, Window, BSD, MacOS… –  Support Java pour FreeBSD6 •  Mais il supporte plusieurs autres langages: –  C++ via SWIG –  Streaming: commandes Unix (42% des utilisations à Yahoo!) –  PIG (28%, à égalité avec Java) •  Java est un avantage: –  Les projets open source les plus récents sont écrits en java –  La rapidité d’exécution n’est pas le point bloquant: limités par le réseau et la vitesse d’écriture sur le disque. –  Supporte d’autres langages.
  • 21. - 21 - Hadoop à Yahoo! •  Jan 2006 Doug Cutting devient employé de Yahoo! •  Près d’un membre du PMC sur deux est un Yahoo! •  Un blog dédié: http://developer.yahoo.net/blogs/hadoop/ •  Utilisation pour: –  La recherche internet –  L’analyse des logs –  Ads matching –  Plateforme ouverte disponible à tous les équipes produit Yahoo!
  • 22. - 22 - Hadoop à Yahoo! •  17k+ machines •  + grand cluster: 2000 nœuds. 4000 nœuds en phase de test. •  Plusieurs PetaOctets de données (compressées, déduppliquées) •  Centaines de milliers de tâches Hadoop tous les mois.
  • 23. - 23 - Webmap utilise Hadoop •  Webmap est le graphe regroupant toutes les adresses connues par le moteur de recherche Yahoo! •  Il est mis à jour tous les jours grâce à une centaine de tâches Map/Reduce •  Hadoop est extensible: –  1 trilliard de nœuds dans le graphe. –  Taille du fichier résultat: 300 TB compressé –  10000 cores –  Utilise 5 PB d’espace disque •  Développé en C++ / Hadoop
  • 24. - 24 - Intérêt de la communauté croissant
  • 25. - 25 - Et Contributions croissantes
  • 26. - 26 - Hadoop: dernières avancées 4000 nœuds! HDFS Cluster Statistics Capacity : 14.25 PB DFS Remaining : 10.61 PB DFS Used : 233.44 TB DFS Used% : 1.6 % Live Nodes : 4049 Dead Nodes : 226 Map-Reduce Cluster Statistics Nodes: 3561 Map Slots: 4 slots per node Reduce Slots: 4 slots per node Améliorations continues
  • 27. - 27 - Hadoop: Projet Open Source Apache •  Apache gère des projets pour la communauté: –  Les utilisateurs –  Les contributeurs (soumettent des patches) –  Les committeurs (peuvent les committer) –  Le Project Management Committee: ses membres sont des committeurs et peuvent en élire de nouveaux, ils décident aussi des releases. •  Devenez membres! … Au mérite, accessible à tous. •  Intérêt croissant de la communauté. Contribuez! •  http://hadoop.apache.org/ •  http://developer.yahoo.net/blogs/hadoop/
  • 28. - 28 - Sources [1] 1.  http://en.wikipedia.org/wiki/Doug_Cutting 2.  http://blog.lucene.com/ Le Blog de Doug Cutting 3.  http://lucene.apache.org/ Lucene 4.  http://en.wikipedia.org/wiki/Lucene Wikipedia Lucene 5.  http://lucene.apache.org/nutch/ Nutch 6.  http://en.wikipedia.org/wiki/Nutch Wikipedia Nutch 7.  http://labs.google.com/papers/gfs.html Google File System 8.  http://labs.google.com/papers/mapreduce.html MapReduce 9.  http://en.wikipedia.org/wiki/Hadoop Wikipedia Hadoop 10.  http://radar.oreilly.com/archives/2007/08/yahoos-bet-on-h.html 11.  http://wiki.apache.org/hadoop/HadoopPresentations
  • 29. - 29 - Sources [2] •  http://wiki.apache.org/hadoop-data/attachments/HadoopPresentations/ attachments/HadoopEBIG-Oct2008.pdf Introduction à Hadoop à l’East Bay Innovation Group par Owen O’Malley