Hadoop MapReduce - OSDC FR 2009

6 215 vues

Publié le

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

Publié dans : Technologie
0 commentaire
6 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
6 215
Sur SlideShare
0
Issues des intégrations
0
Intégrations
299
Actions
Partages
0
Téléchargements
243
Commentaires
0
J’aime
6
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

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    

×