Top Banner
 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
32

Hadoop MapReduce - OSDC FR 2009

May 09, 2015

Download

Technology

Olivier Grisel

Introduction au traitement de gros volumes de données avec Hadoop MapReduce.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Hadoop MapReduce - OSDC FR 2009

   

Hadoop et MapReduce

W

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

Page 2: Hadoop MapReduce - OSDC FR 2009

   

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

Page 3: Hadoop MapReduce - OSDC FR 2009

   

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

Page 4: Hadoop MapReduce - OSDC FR 2009

   

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()

Page 5: Hadoop MapReduce - OSDC FR 2009

   

Le projet Hadoop

• Open Source / Apache Software Foundation • Yahoo / Facebook / Cloudera• Java• Sous projets :

– Hadoop MapReduce– Hadoop DFS & Hbase– Pig & Hive– Mahout

Page 6: Hadoop MapReduce - OSDC FR 2009

   

Architecture générale

NameNode

JobTracker

Client

TaskTracker

DataNode

TaskTracker

DataNode

TaskTracker

DataNode

TaskTracker

DataNode

Page 7: Hadoop MapReduce - OSDC FR 2009

   

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

Page 8: Hadoop MapReduce - OSDC FR 2009

   

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

Page 9: Hadoop MapReduce - OSDC FR 2009

   

Page 10: Hadoop MapReduce - OSDC FR 2009

   

Page 11: Hadoop MapReduce - OSDC FR 2009

   

Page 12: Hadoop MapReduce - OSDC FR 2009

   

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

Page 13: Hadoop MapReduce - OSDC FR 2009

   

Page 14: Hadoop MapReduce - OSDC FR 2009

   

HadoopViz

Page 15: Hadoop MapReduce - OSDC FR 2009

   

Page 16: Hadoop MapReduce - OSDC FR 2009

   

Page 17: Hadoop MapReduce - OSDC FR 2009

   

Page 18: Hadoop MapReduce - OSDC FR 2009

   

Les résultats

Page 19: Hadoop MapReduce - OSDC FR 2009

   

Page 20: Hadoop MapReduce - OSDC FR 2009

   

Page 21: Hadoop MapReduce - OSDC FR 2009

   

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

●… et bien fais le en Scala !

Page 22: Hadoop MapReduce - OSDC FR 2009

   

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, ...

Page 23: Hadoop MapReduce - OSDC FR 2009

   

Page 24: Hadoop MapReduce - OSDC FR 2009

   

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

Page 25: Hadoop MapReduce - OSDC FR 2009

   

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, ...

Page 26: Hadoop MapReduce - OSDC FR 2009

   

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

Page 27: Hadoop MapReduce - OSDC FR 2009

   

Page 28: Hadoop MapReduce - OSDC FR 2009

   

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)

Page 29: Hadoop MapReduce - OSDC FR 2009

   

Page 30: Hadoop MapReduce - OSDC FR 2009

   

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

Page 31: Hadoop MapReduce - OSDC FR 2009

   

Page 32: Hadoop MapReduce - OSDC FR 2009

   

Merci pour votre attention !

Des questions ?

http://twitter.com/ogrisel