Présentation Map reduce altnetfr
-
Upload
altnetfr -
Category
Technology
-
view
1.454 -
download
1
description
Transcript of Présentation Map reduce altnetfr
Site : www.altnetfr.orgTwitter : @altnetfr et #altnetfr
Propositions de sessions:[email protected]
MapReduce
Yann Schwartz
2011-06-15@abolibibelot
Remerciements
OCTO pour l’accueil
Alt.Net Paris
Au menu
Au menuC’est quoi ?
Oui, mais à quoi bon ?
Et comment ça marche ?
Ah, et ça sert vraiment ?
Sauf que…
Bon, et ensuite ?
C’est quoi ?
Petites parenthèses
(reduce + (map #(* % %) [1 2 3 4]))
new[]{1,2,3,4}.Select(x => x*x)
.Aggregate(0, (acc, x) => acc + x)
InterludeUn peu de LINQ…
Map : k1,v1 -> list(k2,v2)
Reduce : k2, list(v2) -> v3
Map : Projection, filtre, transformation
Reduce : agrégation
Oui mais à quoi bon ?
Map Reduce
2004 : Google
« Simplified Data Processing on Large Clusters »
Jeffrey Dean et Sanjay Ghemawat
http://labs.google.com/papers/mapreduce.html
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)
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.
Mais ça s’utilise vraiment ?
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
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é)
Hadoop
Open Source (projet Apache)
Impl émentation du paper de Google
Yahoo principal contributeur
En Java…
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
Et on met quoi dans la boîte ?
Les données (la plupart du temps des fichiers)
Le codeMapper
Reducer
Partitionner
Sauf que…
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
Alors on empile
Pig Latin pour Hadoopexpression impérative
Compilé en MR
Hive pour HadoopOn déguise MR en un SGBD
Bon et ensuite…
Traitement des flux
LINQ to HPC (ex DryadLINQ)
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
Crédits illustrations
Documentation Hadoop
Paper mapreduce labs.google.com/papers/mapreduce-osdi04-slides/index.html
Des Questions ?
Merci !