conception d'un batiment r+4 comparative de defferente ariante de plancher
Presentation Map Reduce
1. Comment traiter rapidement de
grands volumes de données avec
MapReduce ?
Patrick Mveng
CEO & Founder , m-MuZiik
Microsoft BizSpark member
@adelphepatrick
GDG DevFest 2014 , Douala
1
2. Introduction
Nous sommes à l'ère du #multicœur. Les ordinateurs et les
smartphones ont de plus en plus de puissance. Face à la
montée croissance du #BigData, les développeurs ont
besoin de modèle de programmation qui rendra leurs
applications plus #rapides et satisfaire la #clientèle. Au
travers de cette présentation nous allons montrer comment
traiter rapidement un grand volume de données et donner
quelques cas d'utilisation pour moteur de recherche,
apprentissage automatique, domotique.
2
3. Problématique
• Comment traiter rapidement ces grands volumes de
données
• Car l’utilisateur ne va pas attendre plus de 5 secondes
pour avoir la réponse à une requête
• Comment rassembler toutes les données nécessaires
pour un traitement ?
• Comment organiser le traitement de façon que toutes les
données nécessaires soient dans la mémoire en même
temps?
• Avec un Pentium Core i2,i3,i4,i5 ou de vieux PC ,
comment traiter rapidement un grand volume de
données?
3
4. Solution
• Paralléliser les traitements sur les données
• Distribuer les traitements sur les données
• Dans ce cas, comment coordonnées ces traitements ?
• Comment faire si un traitement échoue ?
• Si je perd une donnée ? Les autres traitements doivent-ils
recommencer ?
• Comment coordonnées cette panne ?
4
6. C’est quoi MapReduce ?
MapReduce est un patron d'architecture de développement informatique,
inventé par Google, dans lequel sont effectués des calculs parallèles, et
souvent distribués, de données potentiellement très volumineuses,
typiquement supérieures en taille à 1 téraoctet.
MapReduce est une méthode d’exécution de programme parallèle consistant à
envoyer sur chaque donnée une fonction à exécuter (map) puis à récupérer les
résultats pour les intégrer dans un résultat final (reduce).
Les termes « map » et « reduce », et les concepts sous-jacents, sont
empruntés aux langages de programmation fonctionnelle comme Lisp, Dans le
langage Lisp, la fonction map prend en entrée une fonction et une séquence de
données. Elle exécute la fonction sur chaque donnée. Puis la fonction reduce
collecte les résultats de chaque fonction.
6
7. Fonctionnalités
• Parallélisation automatique : pas besoin d’expérience en
programmation parallèle
• Planification automatique des tâches et équilibrage des
charges sur les noeuds
• Tolérance aux fautes et redémarrage des nœuds ayant
rencontré une erreur ou affectation de la tâche à un autre
nœud.
• Un noeud peut être un thread, un processus, un
ordinateur physique
• Indépendance du système de stockage de données
• Facile à programmer, basé sur deux simples fonctions
• Map()
• Reduce()
7
9. Comment fonctionne MapReduce ?
• 1) Découpage automatiquement des données en entrée en M
bloc de données de même taille.
• 2) Le système créé M tâches Map. Chaque tâche Map lit un
bloc de données en parallèle et génère une paire résultat
temporaire <clé, valeur> dans le système de stockage local.
• 3) Le système attend que toutes les tâches Map parallèles se
terminent, puis les trie et découpe les paires résultats <clé,
valeur> en R regions.
• 4) Le système démarre les tâches Reduce en parallèle sur
chaque region R, Chaque region traite les paires ayant la
même clé.
• 5) Le système publie les résultats de chaque tâche Reduce
9
10. Exemple : Un compteur de mots
Supposons que nous avons les données suivantes:
• cat flower picture
• snow cat cat
• prince flower sun
• king queen AC
10
11. Exemple : Un compteur de mots
• Etape 1: Découpage des données en M(4) blocs.
11
12. Exemple : Un compteur de mots
• Etape 2: Création de 4 tâches Map en parallèle
12
13. Exemple : Un compteur de mots
• Etape 3: Chaque tâche Map fait le décompte par mot, et
génère de nouvelles paires que le système trie par clé en 9
regions.
13
14. Exemple : Un compteur de mots
• Etape 4: Le système lance 9 tâches parallèles Reduce.
Chaque tâche consolide le décompte par mot
14
15. Exemple : Un compteur de mots
• Etape 5: Le système publie les 9 résultats dans un fichier
résultat
15
16. Implémentation de MapReduce
• Hadoop in Java.
• Mars in C++ & CUDA.
• Skynet in Ruby.
• Phoenix in C++
• MyMapReduce in C#
16
18. Cas d’utilisation avec MapReduce
• Reconnaissance de visages sur des millions d’images en
direct ou en différé
• Recherche d’information dans un moteur de recherche (
Google Search, Bing )
• A la maison, traitement en temps réel de données issues
de plusieurs capteurs ( infrarouge, vidéo, etc,)
• Simulation de neurones en Intelligence Artificielle
18
20. Merci
Jeux de Questions / Réponses
20
Comment traiter rapidement de grands volumes de données avec MapReduce ?
Patrick Mveng
CEO & Founder , m-MuZiik
Microsoft BizSpark member
@adelphepatrick