Une introduction à MapReduce
Upcoming SlideShare
Loading in...5
×
 

Une introduction à MapReduce

on

  • 1,653 views

A l'occasion de Solution Linux 2013 nous présentons Hadoop à la communauté en France. Ici une introduction à MapReduce.

A l'occasion de Solution Linux 2013 nous présentons Hadoop à la communauté en France. Ici une introduction à MapReduce.

Statistics

Views

Total Views
1,653
Views on SlideShare
1,639
Embed Views
14

Actions

Likes
1
Downloads
56
Comments
0

2 Embeds 14

http://www.altic.org 11
http://altic.org 3

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Une introduction à MapReduce Une introduction à MapReduce Presentation Transcript

  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’UtilisationCommerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/HUG France SL2013 – Mai 2013Introduction à MapReduceApache Hadoop MapReduceCharly CLAIRMONTAltic - http://altic.orgcharly.clairmont@altic.org@egwada
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Motivations● Traiter de larges jeux de données● Traiter de larges volumes de données● Utiliser 1000 CPU● Sans le tracas de la gestion de la parallélisation /synchronisation● Tolérance à la panne
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Architecture basiqueInputFormatMap Sort Reduce OutputFormatNode NodePartitionerMapReduceHDFS(Distributed File System)
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, pour mieux comprendreMap ReduceKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueEntéesKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueIntermédiaireKey|Value,Key|Value,Key|Value,Key|ValueRésultat= un type de collectionKey|Value,Key|Value,Key|ValueKey|Value,Key|Value
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, Entrées (Input)● Détermine la façon dont les données sont fractionnées● Crée des tableaux d InputSplit[]● Chaque tableau est un map● Associé à une liste demplacement de nœuds● RecordReader● Crée des paires clé-valeur● Conversion des types de données
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Mapreduce, Map● Agit individuellement sur chaque data setKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueKey|ValueEntéesExécution de lalgorithme sur chaque ligne séquentiellementMap(K1 key,V1 val,OutputCollector<K2, V2> output,Reporter reporter)
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, Partitionner● Distribue les paires clés-valeurs● Décide vers du Reducer cible● grâce à la clé– exploite● une fonction de hachage par défaut● ou une fonction personnaliséegetPartition(K2 key, V2 value, int numPartitions)
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, ShuffleMapMapMapReduceReduceHTTP
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, Sort● Garantie que les entrées sont triées● Étape finale du Shuffle● Aide à la fusion des entrées du Reducer
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/MapReduce, Reduce● Reçoit les sortie depuis beaucoup de Mappers● Consolide les valeurs pour les clés intermédiaires● Regroupe les valeurs selon les clésReduce(K2 key,Iterator<V2> values,OutputCollector<K3,V3> output,Reporter reporter)
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Mapreduce, Sorties (Output)● Valide● par rapport à la sortie attendue● Créer un RecordWriter● qui écrit sur HDFS● organise la sortie en fichiers « morceau-0000x »
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Exemple de programme MapReduce, Map/*** Une classe Map qui lit les fichiers à traiter*/public static class MapClass extends MapReduceBase implementsMapper<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 itr = new StringTokenizer(line);while (itr.hasMoreTokens()) {word.set(itr.nextToken());output.collect(word, one);}}}
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Exemple de programme MapReduce, Reduce/*** Une classe Reduce qui compte chaque mot*/public static class Reduce extends MapReduceBase implementsReducer<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));}}
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale- Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/Exemple de programme MapReduce, le Job/*** Le composant Driver indique à Hadoop dexécuter le job à partir desdeux composants (classes) précédement définies*/public void run(String inputPath, String outputPath) throws Exception {JobConf conf = new JobConf(WordCount.class);conf.setJobName("wordcount");// the keys are words (strings)conf.setOutputKeyClass(Text.class);// the values are counts (ints)conf.setOutputValueClass(IntWritable.class);conf.setMapperClass(MapClass.class);conf.setReducerClass(Reduce.class);FileInputFormat .addInputPath(conf, new Path(inputPath));FileOutputFormat .setOutputPath(conf, new Path(outputPath));JobClient.runJob(conf);}
  • Ce support est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’UtilisationCommerciale - Pas de Modification 2.0 France. - http://creativecommons.org/licenses/by-nc-nd/2.0/fr/HUG France SL2013 – Mai 2013Introduction à MapReduceMerci !Charly CLAIRMONTAltic - http://altic.orgcharly.clairmont@altic.org@egwada