Présentation Map reduce altnetfr

2 009 vues

Publié le

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

Publié dans : Technologie, Business
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 009
Sur SlideShare
0
Issues des intégrations
0
Intégrations
2
Actions
Partages
0
Téléchargements
47
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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 />

×