Hadoop et MapReduce


    Introduction au traitement de gros volumes de 
                       données


      Olivier Gr...
Quelques ordres de grandeur
    •
        % ls ­sh enwiki­20090902­pages­articles.xml
           –   23G enwiki­20090902­p...
MapReduce
    •
        Architecture mise au point par Google
    •
        But: faire des traitements (indexation, 
     ...
Un exemple: Indexer en MapReduce
    •
        map(pageName, pageText):
            –   foreach word in pageText:
        ...
Le projet Hadoop
    •
        Open Source / Apache Software Foundation 
    •
        Yahoo / Facebook / Cloudera
    •
 ...
Architecture générale
         Name
         Node


                    Data          Data      Data
                    N...
Demo
    •
        Construire un jeu de données basé sur un dump 
        XML de wikipedia
    •
        Entrainer un “cla...
Chargement des données dans 
              HDFS

java ­jar org.apache.mahout.classifier.
bayes.WikipediaXmlSplitter 
  ­d ...
     
     
     
Lancement du Job


hadoop jar /path/to/mahout­examples­*.job  
org.apache.mahout.classifier.bayes
.WikipediaDatasetCreator...
     
HadoopViz




         
     
     
     
Les résultats




           
     
     
C'est bien tout ça mais j'aime pas le 
               Java ...




        … et bien fais le en Scala !
        ●




    ...
Hadoop Streaming
    •
        Utiliser des programmes hors JVM:
            –   Lire sur stdin
            –   Ecrire sur...
     
Running Streaming Jobs



hadoop jar /path/to/hadoop­0.20.1­streaming.jar 
   ­mapper /home/hadoop/mapper.py 
   ­reducer ...
Je suis DBA et je ne programme pas
    •
        Hive : SQL­like pour faire du Datawarehousing 
        avec Hadoop
    •
...
Comment installer Hadoop
    •
        Ajouter le repo Cloudera Distribution for 
        Hadoop 2 (CDH2) dans /etc/apt/so...
     
Comment ne pas installer Hadoop
    •
        Image Amazon EC2 AMI par cloudera avec 
        CDH2
           –   scripts ...
     
Apprendre a Programmer en 
                 MapReduce
    •
        Tutoriel officiel : http://hadoop.apache.org
    •
   ...
     
Merci pour votre attention !



         Des questions ?



     http://twitter.com/ogrisel
                  
Prochain SlideShare
Chargement dans…5
×

Hadoop MapReduce - OSDC FR 2009

6 377 vues

Publié le

Introduction au traitement de gros volumes de données avec Hadoop MapReduce.

Publié dans : Technologie
  • Soyez le premier à commenter

Hadoop MapReduce - OSDC FR 2009

  1. 1. Hadoop et MapReduce Introduction au traitement de gros volumes de  données Olivier Grisel ­ AFPy ­ OSDC FR – Nuxeo http://twitter.com/ogrisel OSDC FR 2009 – Paris Cité des Sciences    
  2. 2. Quelques ordres de grandeur • % ls ­sh enwiki­20090902­pages­articles.xml – 23G enwiki­20090902­pages­articles.xml • % time cat enwiki­20090902­pages­articles.xml  > /dev/null – 2.53s user 41.39s system 23% cpu 3:03.92 total – 128MB/s (sur un disque SSD) • 100 GB => ~ 10 minutes • 1 TB => ~ 2 heures   • 1 PB => ~ 3 mois  
  3. 3. MapReduce • Architecture mise au point par Google • But: faire des traitements (indexation,  aggrégation, datamining, ...) • Webscale (100 GB+, TB, PB, …) • Déplacer les traitements sur l'infra de stockage • Exploitation de l'information localisation des  données • Tolérance aux erreurs disque / hardware    
  4. 4. Un exemple: Indexer en MapReduce • map(pageName, pageText): – foreach word in pageText: – emitIntermediate(word, pageName); [copie et trie par clefs entre les noeuds] • reduce(word, pageNames): – bucket = createBucketFor(word) – foreach pageName in pageNames: ● bucket.add(pageName)   – bucket.finalize()  
  5. 5. Le projet Hadoop • Open Source / Apache Software Foundation  • Yahoo / Facebook / Cloudera • Java • Sous projets : – Hadoop MapReduce – Hadoop DFS & Hbase – Pig & Hive – Mahout    
  6. 6. Architecture générale Name Node Data Data Data Node Node Node Client Task Task Task Tracker Tracker Tracker Job Tracker    
  7. 7. Demo • Construire un jeu de données basé sur un dump  XML de wikipedia • Entrainer un “classifieur” bayesien de  documents • Pour chaque pays, rassembler dans un fichier la  liste des texte brut des articles de cette catégorie • Un article par ligne dans, 1 fichier par pays    
  8. 8. Chargement des données dans  HDFS java ­jar org.apache.mahout.classifier. bayes.WikipediaXmlSplitter    ­d /path/to/enwiki­latest­pages­articles.xml   ­o wikipedia­chunks/ ­c 64 hadoop dfs ­put wikipedia­chunks/ wikipediadump    
  9. 9.    
  10. 10.    
  11. 11.    
  12. 12. Lancement du Job hadoop jar /path/to/mahout­examples­*.job   org.apache.mahout.classifier.bayes .WikipediaDatasetCreatorDriver    ­i wikipediadump   ­o wikipediadataset   ­c src/test/resources/country.txt    
  13. 13.    
  14. 14. HadoopViz    
  15. 15.    
  16. 16.    
  17. 17.    
  18. 18. Les résultats    
  19. 19.    
  20. 20.    
  21. 21. C'est bien tout ça mais j'aime pas le  Java ... … et bien fais le en Scala ! ●    
  22. 22. Hadoop Streaming • Utiliser des programmes hors JVM: – Lire sur stdin – Ecrire sur stdout  – Respecter la forme “<key>t<value>n” – Emettre un heartbeat sur stderr • C, Perl, Python, Ruby, bash, sed, awk, ...    
  23. 23.    
  24. 24. Running Streaming Jobs hadoop jar /path/to/hadoop­0.20.1­streaming.jar     ­mapper /home/hadoop/mapper.py     ­reducer /home/hadoop/reducer.py      ­input gutenberg/*    ­output gutenberg­output    
  25. 25. Je suis DBA et je ne programme pas • Hive : SQL­like pour faire du Datawarehousing  avec Hadoop • Pig Latin : scripting haut niveau pour faire des  transformations sur des logs, dump de DB, ...    
  26. 26. Comment installer Hadoop • Ajouter le repo Cloudera Distribution for  Hadoop 2 (CDH2) dans /etc/apt/sources.list • sudo apt­get install hadoop hadoop­conf­pseudo • for service in /etc/init.d/hadoop­* ; do   sudo $service start; done    
  27. 27.    
  28. 28. Comment ne pas installer Hadoop • Image Amazon EC2 AMI par cloudera avec  CDH2 – scripts de lancement et de monitoring – Pig, Hive, ... – Possibilité d'installer des packages en plus • Service Amazon Elastic MapReduce – Lance un cluster AWS EC2 avec Hadoop  préinstallé – 1$ / h / node  (octo­core avec 1TB de disque)    
  29. 29.    
  30. 30. Apprendre a Programmer en  MapReduce • Tutoriel officiel : http://hadoop.apache.org • Autres tutos : http://www.michael­noll.com • Blog avec exemples d'applications :  http://www.datawrangling.com/ • Support de formation Cloudera – Videos – Slides + fichiers exercices – Images de machine virtuelle    
  31. 31.    
  32. 32. Merci pour votre attention ! Des questions ? http://twitter.com/ogrisel    

×