Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
Detente
Next
Download to read offline and view in fullscreen.

Share

Présentation Map reduce altnetfr

Download to read offline

Session Alt.net Paris du 15 juin chez Octo, animée par Yann Schwartz.

Au menu de cette session :

Principes du map/reduce : définition, à quoi ça sert
Une implémentation en C# pour comprendre
Utilisation du map reduce en NoSQL
Un serveur dédié map-reduce : Hadoop
hadoop : mapreduce et filesystem distribué
mapreduce de base
pig latin (un langage semi procédural – à la linq – au dessus de mapreduce)
Conclusion : pour quoi utiliser mapreduce dans vos traitements

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Présentation Map reduce altnetfr

  1. 1. Site : www.altnetfr.org<br />Twitter : @altnetfr et #altnetfr<br />Propositions de sessions:<br />sessions@altnetfr.org<br />
  2. 2. MapReduce<br />Yann Schwartz<br />@abolibibelot<br />2011-06-15<br />
  3. 3. Remerciements<br />OCTO pour l’accueil<br />
  4. 4. Alt.Net Paris<br />Au menu<br />
  5. 5. Au menu<br />C’est quoi ?<br />Oui, mais à quoi bon ?<br />Et comment ça marche ?<br />Ah, et ça sert vraiment ?<br />Sauf que…<br />Bon, et ensuite ?<br />
  6. 6. C’est quoi ?<br />
  7. 7. Petites parenthèses<br />(reduce + (map #(* % %) [1 2 3 4]))<br />new[]{1,2,3,4}.Select(x => x*x)<br /> .Aggregate(0, (acc, x) => acc + x)<br />
  8. 8. Interlude<br />Un peu de LINQ…<br />
  9. 9. Map : k1,v1 -> list(k2,v2)<br />Reduce : k2, list(v2) -> v3<br />
  10. 10. Map : Projection, filtre, transformation<br />Reduce : agrégation<br />
  11. 11. Oui mais à quoi bon ?<br />
  12. 12. MapReduce<br />2004 : Google<br />« Simplified Data Processing on Large Clusters »<br />Jeffrey Dean et Sanjay Ghemawat<br />http://labs.google.com/papers/mapreduce.html<br />
  13. 13.
  14. 14.
  15. 15. Séquence d’un frameworkMapReduce<br />Choix des entrées, parallélisation<br />Map<br />Regroupement (parallèle)<br />Reduce<br />Restitution<br /> (en rouge, ce qu’on écrit soi-même)<br />
  16. 16. MR modélise une pipeline de forks et de joins, sans expliciter les forks ni les joins<br /><ul><li>Le framework se charge
  17. 17. Du découpage
  18. 18. De la réconciliation
  19. 19. De la distribution des données (et du code)
  20. 20. Du failover</li></ul>…la partie horrible en fait.<br />
  21. 21.
  22. 22. Mais ça s’utilise vraiment ?<br />
  23. 23. NoSQL<br />Souvent du sharding<br />Les requêtes réparties peuvent être traduites par<br />Traiter les données sur chacun des shards<br />Agréger les résultats de chaque shard<br />Regrouper ces résultats<br />Pas de clustering (SGBD) et du mapreduce<br />
  24. 24. MapReduce et NoSQL<br />CouchDB<br />Requêtes prédéfinies (vues), exprimées en MR<br />MongoDB<br />MR utilisé comme généralisation du GROUP BY<br />RavenDB<br />MapReduce utilisé pour créer des index en LINQ (pas distribué)<br />
  25. 25. Hadoop<br />Open Source (projet Apache)<br />Impl émentation du paper de Google<br />Yahoo principal contributeur<br />En Java…<br />
  26. 26. Qu’est-ce qu’il y a dans la boîte ?<br />Un système de fichiers réparti (HDFS)<br />Réplication et distribution<br />Un scheduler de jobs et de tâches<br />Reprise, failover, supervision<br />Optimisation de la localité des données<br />
  27. 27. Et on met quoi dans la boîte ?<br />Les données (la plupart du temps des fichiers)<br />Le code<br />Mapper<br />Reducer<br />Partitionner<br />
  28. 28. Sauf que…<br />
  29. 29. C’est pas si simple<br /><ul><li>Map et Reduce sont des primitives
  30. 30. Pas toujours évident d’exprimer son intention
  31. 31. Casser les algorithmes pour se conformer à MR
  32. 32. Certains concepts très difficiles à exprimer
  33. 33. Boucles, conditions, etc.
  34. 34. On n’est pas en fonctionnel pur
  35. 35. Accès vers l’extérieur
  36. 36. Effets de bord</li></li></ul><li>Alors on empile<br />Pig Latin pour Hadoop<br />expression impérative<br />Compilé en MR<br />Hive pour Hadoop<br />On déguise MR en un SGBD<br />
  37. 37. Bon et ensuite…<br />
  38. 38. Traitement des flux<br />LINQ to HPC (ex DryadLINQ)<br />
  39. 39. Pour approfondir<br />labs.google.com/papers/mapreduce.html<br />couchdb.apache.org<br />ravendb.net<br />mongodb.org<br />hadoop.apache.org<br />Excellente présentation d’Hadoopslidesha.re/5n8npE<br />LINQ to HPC : bit.ly/jygFr2<br />
  40. 40. Crédits illustrations<br />Documentation Hadoop<br />Papermapreducelabs.google.com/papers/mapreduce-osdi04-slides/index.html<br />
  41. 41. Des Questions ?<br />
  42. 42. Merci !<br />
  • abdennebi

    Jul. 18, 2011

Session Alt.net Paris du 15 juin chez Octo, animée par Yann Schwartz. Au menu de cette session : Principes du map/reduce : définition, à quoi ça sert Une implémentation en C# pour comprendre Utilisation du map reduce en NoSQL Un serveur dédié map-reduce : Hadoop hadoop : mapreduce et filesystem distribué mapreduce de base pig latin (un langage semi procédural – à la linq – au dessus de mapreduce) Conclusion : pour quoi utiliser mapreduce dans vos traitements

Views

Total views

2,230

On Slideshare

0

From embeds

0

Number of embeds

1

Actions

Downloads

52

Shares

0

Comments

0

Likes

1

×