32
Site : www.altnetfr.org Twitter : @altnetfr et #altnetfr Propositions de sessions: [email protected]

Présentation Map reduce altnetfr

Embed Size (px)

DESCRIPTION

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 sertUne implémentation en C# pour comprendreUtilisation du map reduce en NoSQLUn serveur dédié map-reduce : Hadoophadoop : mapreduce et filesystem distribuémapreduce de basepig latin (un langage semi procédural – à la linq – au dessus de mapreduce)Conclusion : pour quoi utiliser mapreduce dans vos traitements

Citation preview

Page 1: Présentation Map reduce altnetfr

Site : www.altnetfr.orgTwitter : @altnetfr et #altnetfr

Propositions de sessions:[email protected]

Page 2: Présentation Map reduce altnetfr

MapReduce

Yann Schwartz

2011-06-15@abolibibelot

Page 3: Présentation Map reduce altnetfr

Remerciements

OCTO pour l’accueil

Page 4: Présentation Map reduce altnetfr

Alt.Net Paris

Au menu

Page 5: Présentation Map reduce altnetfr

Au menuC’est quoi ?

Oui, mais à quoi bon ?

Et comment ça marche ?

Ah, et ça sert vraiment ?

Sauf que…

Bon, et ensuite ?

Page 6: Présentation Map reduce altnetfr

C’est quoi ?

Page 7: Présentation Map reduce altnetfr

Petites parenthèses

(reduce + (map #(* % %) [1 2 3 4]))

new[]{1,2,3,4}.Select(x => x*x)

.Aggregate(0, (acc, x) => acc + x)

Page 8: Présentation Map reduce altnetfr

InterludeUn peu de LINQ…

Page 9: Présentation Map reduce altnetfr

Map : k1,v1 -> list(k2,v2)

Reduce : k2, list(v2) -> v3

Page 10: Présentation Map reduce altnetfr

Map : Projection, filtre, transformation

Reduce : agrégation

Page 11: Présentation Map reduce altnetfr

Oui mais à quoi bon ?

Page 12: Présentation Map reduce altnetfr

Map Reduce

2004 : Google

« Simplified Data Processing on Large Clusters »

Jeffrey Dean et Sanjay Ghemawat

http://labs.google.com/papers/mapreduce.html

Page 13: Présentation Map reduce altnetfr
Page 14: Présentation Map reduce altnetfr
Page 15: Présentation Map reduce altnetfr

Séquence d’un framework Map Reduce

1. Choix des entrées, parallélisation

2. Map

3. Regroupement (parallèle)

4. Reduce

5. Restitution(en rouge, ce qu’on écrit soi-

même)

Page 16: Présentation Map reduce altnetfr

MR modélise une pipeline de forks et de joins, sans expliciter les forks ni les joins

• Le framework se charge• Du découpage• De la réconciliation• De la distribution des données (et du code)• Du failover

…la partie horrible en fait.

Page 17: Présentation Map reduce altnetfr
Page 18: Présentation Map reduce altnetfr

Mais ça s’utilise vraiment ?

Page 19: Présentation Map reduce altnetfr

NoSQL

Souvent du sharding

Les requêtes réparties peuvent être traduites par

Traiter les données sur chacun des shards

Agréger les résultats de chaque shard

Regrouper ces résultats

Pas de clustering (SGBD) et du map reduce

Page 20: Présentation Map reduce altnetfr

Map Reduce et NoSQL

CouchDBRequêtes prédéfinies (vues), exprimées en MR

MongoDBMR utilisé comme généralisation du GROUP BY

RavenDBMap Reduce utilisé pour créer des index en LINQ (pas distribué)

Page 21: Présentation Map reduce altnetfr

Hadoop

Open Source (projet Apache)

Impl émentation du paper de Google

Yahoo principal contributeur

En Java…

Page 22: Présentation Map reduce altnetfr

Qu’est-ce qu’il y a dans la boîte ?

Un système de fichiers réparti (HDFS)Réplication et distribution

Un scheduler de jobs et de tâchesReprise, failover, supervision

Optimisation de la localité des données

Page 23: Présentation Map reduce altnetfr

Et on met quoi dans la boîte ?

Les données (la plupart du temps des fichiers)

Le codeMapper

Reducer

Partitionner

Page 24: Présentation Map reduce altnetfr

Sauf que…

Page 25: Présentation Map reduce altnetfr

C’est pas si simple

• Map et Reduce sont des primitives• Pas toujours évident d’exprimer son intention• Casser les algorithmes pour se conformer à

MR

• Certains concepts très difficiles à exprimer• Boucles, conditions, etc.

• On n’est pas en fonctionnel pur• Accès vers l’extérieur• Effets de bord

Page 26: Présentation Map reduce altnetfr

Alors on empile

Pig Latin pour Hadoopexpression impérative

Compilé en MR

Hive pour HadoopOn déguise MR en un SGBD

Page 27: Présentation Map reduce altnetfr

Bon et ensuite…

Page 28: Présentation Map reduce altnetfr

Traitement des flux

LINQ to HPC (ex DryadLINQ)

Page 29: Présentation Map reduce altnetfr

Pour approfondirlabs.google.com/papers/mapreduce.html

couchdb.apache.org

ravendb.net

mongodb.org

hadoop.apache.org

Excellente présentation d’Hadoop slidesha.re/5n8npE

LINQ to HPC : bit.ly/jygFr2

Page 30: Présentation Map reduce altnetfr

Crédits illustrations

Documentation Hadoop

Paper mapreduce labs.google.com/papers/mapreduce-osdi04-slides/index.html

Page 31: Présentation Map reduce altnetfr

Des Questions ?

Page 32: Présentation Map reduce altnetfr

Merci !