Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

sodapdf-converted.pptx

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Hadoop INTRO.pptx
Hadoop INTRO.pptx
Chargement dans…3
×

Consultez-les par la suite

1 sur 37 Publicité

Plus De Contenu Connexe

Publicité

sodapdf-converted.pptx

  1. 1. Big Data Chp2 –Hadoop et MapReduce Dr. Lilia SFAXI GL4-OPTION MANAGEMENT DES SYSTÈMES D’INFORMATION -2013-2014 Institut National des Sciences Appliquées et de Technologie
  2. 2.  Le projet Hadoop consiste en deux grandes parties: o Stockage des données :HDFS (Hadoop Distributed File System) o T raitement desdonnées :MapReduce  Principe : o Diviser les données o Les sauvegarder sur une collection de machines, appelées cluster o Traiter les données directement là où elles sont stockées, plutôt que de les copier à partir d’un serveur distribué  Ilest possible d’ajouter des machines à votre cluster, au fur et à mesure que les données augmentent 2 Hadoop
  3. 3. 3 Hadoop, HDFSet MapReduce Big Data HDFS Données Utiles NN DN DN DN DN DN DN Données Utiles Copie du local MAP REDUCE Copie versle local
  4. 4.  MapReduce utilise des langages de programmation pour traiter les données o Java, Ruby, Python…  Plusieursoutilsfacilitant le travail  Au dessus du MapReduce :langage plus simple traduit plus tard en Mappers et Reducers o PIG :script simple o Hive :requêtes SQL 4 Ecosystème de Hadoop I mpala HBase Pig Hive Hue Oozie Mahout Sqoop Flume HDFS M-R
  5. 5.  Les jobs MapReduce peuvent prendre beaucoup de tempspour s’exécuter surde largesquantités de données o Autresprojets pour simplifier  Impala : o Extraction des données directement à partir de HDFSavec SQL o Optimisé pour lesrequêtes à faible latence o Requêtes plus rapides que Hive  HBase : o Base de données temps réél 5 Ecosystème de Hadoop HDFS M-R I mpala HBase Pig Hive Hue Oozie Mahout Sqoop Flume
  6. 6.  Connexion du HDFSà partird’outils externes  Sqoop : o Prend les données à partir d’une base de données traditionnelle, et lesmet dansHDFS, comme étant desfichiers délimités, pour être traitéesavec d’autresdonnées dansle cluster  Flume : o Système distribué permettant de collecter , regrouper et déplacer efficacement un ensemble de données (des logs) à partir de plusieurs sources versle HDFS 6 Ecosystème de Hadoop I mpala HBase Pig Hive Hue Oozie Mahout Sqoop Flume HDFS M-R
  7. 7.  Hue : o Front-end graphique pour le cluster o Fournit  Un navigateur pour HDFSet HBase  Des éditeurs pour Hive, Pig, Impala et Sqoop  Oozie : o Outil de gestion de Workflow o Permet de gérerles jobsHadoop  Mahout : o Bibliothèque d’apprentissage automatique o Permet de :  Déterminer des éléments qu’un utilisateur pourra apprécier selon son comportement  Grouperdesdocuments  Affecter automatiquement des catégories aux documents 7 Ecosystème de Hadoop I mpala HBase Pig Hive Hue Oozie Mahout Sqoop Flume HDFS M-R
  8. 8.  HDFS est un système de fichiers distribué, extensible et portable  Ecrit en Java  Permet de stocker de trèsgrosvolumesde données surun grand nombre de machines(nœ uds) équipées de disques durs banalisés  Cluster  Quand un fichiermydata.txt est enregistré dans HDFS, il est décomposé en grands blocs (pardéfaut 64Mo), chaque bloc ayant un nom unique:blk_1, blk_2… 8 HDFS:Hadoop Distributed File System 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 Cluster Nœuds
  9. 9.  Chaque bloc est enregistré dans un nœ ud différent du cluster  DataNode :démon surchaque nœ ud du cluster  NameNode : o Démon s’exécutant sur une machine séparée o Contient desméta-données o Permet de retrouver lesnœ uds qui exécutent lesblocs d’un fichier 9 HDFS:Hadoop Distributed File System 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 DataNode DN DN DN DN DN NN NameNode
  10. 10.  ✓ Panne de disque sur les NameNodes ? 10 HDFS:Hadoop Distributed File System 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 DN DN DN DN DN NN ✓  Quelssont lesproblèmes possibles?  Panne de réseau ?  ✓ Panne de disque sur les DataNodes ?  Pas tous les DN sont utilisés ?  Lestailles desblocks sont différentes ?
  11. 11.  Si l’un desnœ udsa un problème, les données seront perdues o Hadoop réplique chaque bloc 3 fois o Il choisit 3 nœuds au hasard, et place une copie du bloc dans chacun d’eux o Si le nœ ud est en panne, le NN le détecte, et s’occupe de répliquer encore les blocs qui y étaient hébergés pour avoir toujours 3 copies stockées o Concept de Rack Awareness (rack =baie de stockage)  Si le NameNode a un problème ? 11 HDFS:Hadoop Distributed File System 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 DN NN DN DN DN DN
  12. 12. données sont temporairement inaccessibles  Si le disque du NN est défaillant, les données seront perdues à jamais 12 HDFS:Hadoop Distributed File System  Si le NameNode a un problème :  Données inaccessibles?  ✓ Données perdues à jamais  ✓ Pasde problème  Si c’est un problème d’accès (réseau), les 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 DN NN DN DN DN DN
  13. 13.  Pour évitercela, le NameNode sera dupliqué, non seulement surson propre disque, maiségalement quelque part sur le système de fichiersdu réseau  Définition d’un autre NN (standby namenode) pour reprendre le travail si le NameNode actif est défaillant 13 HDFS:Hadoop Distributed File System 64 Mo 64 Mo 22 Mo mydata.txt (150 Mo) blk_1 blk_ 2 blk_3 DN NN DN DN DN DN NN Standby NameNode
  14. 14.  Patron d’architecture de développement permettant de traiterdesdonnées volumineusesde manière parallèle et distribuée  A la base, le langage Java est utilisé, mais grâce à une caractéristique de Hadoop appelée Hadoop Streaming, il est possible d’utiliser d’autres langages comme Python ou Ruby  Au lieu de parcourir le fichier séquentiellement (bcp de temps), il est divisé en morceaux qui sont parcourusen parallèle. 14 Map-Reduce
  15. 15.  Imaginons que vousayez plusieurs magasinsque vousgérez à traversle monde  Un trèsgrand livre de comptes contenant TOUTESlesventes  Objectif :Calculerle total des ventes par magasin pour l’année en cours  Supposonsque leslignesdu livresaient la forme suivante: 15 Map-Reduce :Exemple 2012-01-01 London Clothes 25.99 2012-01-01 Miami Music 12.15 o Jour Ville produit Prix 2012-01-02 NYC Toys 3.10 2012-01-02 Miami Clothes 50.00
  16. 16.  Possibilité : o Pour chaque entrée, saisir la ville et le prix de vente o Si on trouve une entrée avec une ville déjà saisie, on les regroupe en faisant la somme desventes  Dans un environnement de calcul traditionnel, on utilise généralement des Hashtables, sousforme de: Clef Valeur  Dans notre cas, la clef serait l’adresse du magasin, et la valeurle total des ventes. 16 Map-Reduce :Exemple 2012-01-01 London Clothes 25.99 2012-01-01 Miami Music 12.15 2012-01-02 NYC Toys 3.10 2012-01-02 Miami Clothes 50.00 London Miami NYC 25.99 12.15 3.10 London Miami NYC 25.99 62.15 3.10
  17. 17. 17 Map-Reduce :Exemple  Si on utilise leshashtables sur 1To, Problèmes ?  Ça ne marchera pas ?  ✓ Problème de mémoire ?  ✓ T emps de traitement long ?  Réponses erronées ?  Le traitement séquentiel de toutesles données peut s’avérer très long  Pluson a de magasins, plus l’ajout des valeurs à la table est long  Il est possible de tomber à court de mémoire pour enregistrer cette table  Maiscela peut marcher , et le résultat sera correct 2012-01-01 London Clothes 25.99 2012-01-01 Miami Music 12.15 2012-01-02 NYC Toys 3.10 2012-01-02 Miami Clothes 50.00 Clef Valeur London 25.99 Miami 62.15 NYC 3.10
  18. 18.  Map-Reduce :Moyen plus efficace et rapide de traitercesdonnées  Au lieu d’avoirune seule personne qui parcourt le livre, si on en recrutait plusieurs?  Appeler un premier groupe les Mappers et un autre les Reducers  Diviser le livre en plusieurs parties, et en donner une à chaque Mapper o Les Mappers peuvent travailler en même temps, chacun sur une partie des données 18 Map-Reduce :Exemple Mappers Reducers
  19. 19. Mappers :  Pourchaque entrée, saisirla ville, et le total desventeset lesenregistrerdansune fiche  Rassemblerlesfichesdu même magasin dans une même pile Reducers :  Chaque Reducer sera responsable d’un ensemble de magasins  Ilscollectent les fiches qui leur sont associées desdifférentsMappers  Ilsregroupent lespetitespilesd’une même ville en une seule  Ilsparcourent ensuite chaque pile par ordre alphabétique des villes (L.A avant Miami), et font la somme de l’ensemble des enregistrements 19 Map-Reduce :Exemple Mappers Reducers Miami L. A. N.Y.C N.Y.C. N.Y.C. Miami L. A. Miami Miami L. A. L. A. N.Y.C N.Y.C N.Y.C $300,578 $603.768 $432.900
  20. 20.  Le Reducer reçoit des données comme suit : Miami 12.34 Miami 99.07 Miami 3.14 NYC 99.77 NYC 88.99  Pour chaque entrée, de quoi avons- nous besoin pour calculer la totalité des ventes pour chaque magasin? 20 Map-Reduce :Exemple  Coût précédent  ✓ Coût en cours  ✓ Ventes totales par magasin  ✓ Magasin précédent  ✓ Magasin en cours Mappers Reducers Miami L. A. N.Y.C N.Y.C. N.Y.C. Miami L. A. Miami Miami L. A. L. A. N.Y.C N.Y.C N.Y.C $300,578 $603.768 $432.900
  21. 21.  Les Mappers sont de petits programmes qui commencent par traiterchacun une petite partie des données  Ilsfonctionnent en parallèle  Leurs sorties représentent les enregistrements intermédiaires: sous forme d’un couple (clef, valeur)  Une étape de Mélange et Tri s’ensuit o Mélange :Sélection des piles de fichesà partir des Mappers o Tri:Rangement despiles par ordre au niveau de chaque Reducer  Chaque Reducer traite un ensemble d’enregistrements à la fois, pour générer lesrésultatsfinaux 21 Map-Reduce :Fonctionnement Mappers Enregistrements Intermédiaires (Clef, Valeur) Reducers (Clef, Valeurs)
  22. 22.  Pour avoir un résultat trié par ordre, on doit: o Soit avoir un seul Reducer , mais ça ne se met pas bien à l’échelle o Soit ajouter une autre étape permettant de faire le tri final  Si on a plusieursReducers, on ne peut pas savoir lesquels traitent quelles clefs: le partitionnement est aléatoire. 22 Map-Reducer:Résultats Mappers Enregistrements Intermédiaires (Clef, Valeur) Reducers (Clef, Valeurs)
  23. 23.  JobTracker o Divise le travail sur les Mappers et Reducers, s’exécutant sur lesdifférents nœuds  TaskTracker o S’exécute sur chacun desnœ uds pour exécuter les vraies tâchesde Mape- Reduce o Choisit en général de traiter (Map ou Reduce) un bloc sur la même machine que lui o S’il est déjà occupé, la tâche revient à un autre tracker , qui utilisera le réseau (rare) 23 Démonsde MapReduce JobT racker TaskTracker
  24. 24.  Les designs patterns (Patrons de Conception) représentent les types de traitements lesplusutilisésavec Hadoop  Classésen troiscatégories: o Patrons de Filtrage (Filtering Patterns)  Echantillonnage de données  Listes des top-n o Patrons de Récapitulation (Summarization Patterns)  Comptage des enregistrement  T rouverlesmin et lesmax  Statistiques  Indexes o Patrons Structurels  Combinaison de données relationnelles 24 Hadoop Design Patterns
  25. 25.  Ne modifient paslesdonnées  Trient, parmi les données présentes, lesquelles garder et lesquelles enlever  On peut obtenir: o Des filtres simples :définition d’une fonction indiquant le critère de filtrage o L’échantillonnage (sampling):création d’un petit ensemble d’enregistrements à partir d’un grand ensemble, en retenant deséchantillons (comme la valeur la plus élevée d’un champs particulier) o L’échantillonnage aléatoire :retenir un échantillon représentatif des données initiales o Les listes Top-n 25 Patrons de Filtrage ✓ ✗ ✗ ✗ ✓ ✓ ✗ ✗ ✓
  26. 26.  Exemple de Filtrage Simple: o Cas d’étude :fichier contenant tousles posts des utilisateurs sur un forum o Filtre :Retenir les posts les plus courts, contenant une seule phrase  Une phrase est un post qui ne contient aucune ponctuation de la forme:.!?, ou alorsune seule à la fin. 26 Patrons de Filtrage Exemples
  27. 27.  Exemple:T op 10 o T rouver parmi lesdifférentsposts des forums, les10 posts les plus longs o Dans une Base de données Relationnelle:  T rierlesdonnées  Extraire les10 premières o Map-Reduce (de la même manière qu’une sélection sportive)  Chaque Mapper génère une liste Top-10  Le Reducertrouve lesT op 10 globaux 27 Patrons de Filtrage Exemples
  28. 28.  Permettent de vous donner une idée de haut niveau de vos données  On distingue deux types: o Index :Tels que les index à la fin d’un livre, ou les index utilisés par google pour représenter les pages web o Récapitulation (ou résumé) numérique :par exemple:  Chercher des chiffres, des comptes (combien dispose-t-on d’un certain type d’entrées)  Min et Max  Premieret dernier  Moyenne  … 28 Patronsde Récapitulation
  29. 29.  Lesindex permettent une recherche plus rapide  Dans un livre: pour chaque mot donné, indiquer les différentes pages où se trouve ce mot  Dans le web: on trouve des liens vers des pages web à partir d’un ensemble de mots clefs 29 Patronsde Récapitulation Index
  30. 30.  Exemple : I ndexation des motsdans les posts d’un forum  Mapper  30 Patronsde Récapitulation Index
  31. 31. 31 Patronsde Récapitulation Index  Exemple : I ndexation des motsdans les posts d’un forum  Reducer 
  32. 32.  Peuvent être: o Le nombre de mots, enregistrements…  Souvent: la clef =l’objet à compter, et la valeur =1 (nombre d’occurrences) o Min-Max / Premier-Dernier o La moyenne o La médiane o Écart type o …  Exemple de question: o Y’a-t-il une relation entre le jour de la semaine et la somme dépensée par les clients? o Mapper :clef =jour_de_la_semaine; valeur =somme_dépensée o Reducer :calcul 32 Patronsde Récapitulation Récapitulations Numériques
  33. 33.  Possibilité d’utiliser un mélangeur (Combiner) entre les mappers et les reducers  Permettent de réaliser la réduction en local dans chacun des DataNodes Mappers AVANTde faire appel au nœ ud réducteur principal.  Exemple: pour calculer la moyenne des ventes par jour de la semaine: o Sans Combiner  Les Mappers parcourent les données, et affichent le couple (Jour_de_la_semaine, montant)  Pour chaque jour, le Reducer conserve une somme et un compteur  Il divise à la fin la somme parle compteur o Avec Combiner  Chaque nœud réalise une première réduction où les moyennes locales sont calculées  Le Reducer final regroupe ces moyennes et synthétise la moyenne finale  Nombre d’enregistrements envoyés au réducteur significativement réduit  T empsnécessaire pourla réduction diminue 33 Patronsde Récapitulation Mélangeur
  34. 34. 34 PatronsStructurels  Utilisés quand les données proviennent d’une base de données structurée  Plusieurs tables, donc plusieurs sources de données, liées par clef étrangère  Les données des différentes tables sont exportées sous forme de fichiers délimités  Le Mapper aura donc comme tâche de : o Parcourir l’ensemble des fichiers correspondant aux tables de la base o Extraire de chacune des entrées les données nécessaires, en utilisant comme clef la clef étrangère joignant les deux tables o Afficher les données extraites des différentes tables, chacune sur une ligne, en créant un champs supplémentaire indiquant la source des données. Id_user Source desdonnées(A si de la table 1, B si de la table 2)  Reducer: o Fera l’opération de jointure entre les deux sources, en testant la provenance avec le champs supplémentaire (A ou B)
  35. 35.  La gestion des défaillances :que ce soit au niveau du stockage ou traitement, les nœuds responsables de ces opérations durant le processus de Hadoop sont automatiquement gérés en cas de défaillance. Nous avons donc une forte tolérance aux pannes.  La sécurité et persistance des données :Grâce au concept «Rack Awarness »,il n’y a plus de soucis de perte de données.  La montée en charge: garantie d’une montée en charge maximale.  La complexité réduite: capacité d'analyse et de traitement des données à grande échelle.  Le coût réduit :Hadoop est open source, et malgré leur massivité et complexité, les données sont traitées efficacement et à très faible coût 35 Atouts de Hadoop
  36. 36.  Difficulté d’intégration avec d’autres systèmes informatiques: le transfert de données d’une structure Hadoop vers des bases de données traditionnelles est loin d’être trivial  Administration complexe :Hadoop utilise son propre langage. L’entreprise doit donc développer une expertise spécifique Hadoop ou faire appel à des prestataires extérieurs  Traitement de données différé et temps de latence important: Hadoop n’est pas fait pour l’analyse tempsréé des données.  Produit en développement continu (manque de maturité) 36 Inconvénientsde Hadoop
  37. 37.  Cours o Big Data Analytics –Lesson 1:What is Big Data, IBM, Big Data University o Intro to Hadoop and MapReduce, Coursera, Udacity 37 Sources

×