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. Quelques ordres de grandeur
•
% ls sh enwiki20090902pagesarticles.xml
– 23G enwiki20090902pagesarticles.xml
•
% time cat enwiki20090902pagesarticles.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. 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. 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. Le projet Hadoop
•
Open Source / Apache Software Foundation
•
Yahoo / Facebook / Cloudera
•
Java
•
Sous projets :
– Hadoop MapReduce
– Hadoop DFS & Hbase
– Pig & Hive
– Mahout
6. Architecture générale
Name
Node
Data Data Data
Node Node Node
Client
Task Task Task
Tracker Tracker Tracker
Job
Tracker
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
25. Je suis DBA et je ne programme pas
•
Hive : SQLlike pour faire du Datawarehousing
avec Hadoop
•
Pig Latin : scripting haut niveau pour faire des
transformations sur des logs, dump de DB, ...
26. Comment installer Hadoop
•
Ajouter le repo Cloudera Distribution for
Hadoop 2 (CDH2) dans /etc/apt/sources.list
•
sudo aptget install hadoop hadoopconfpseudo
•
for service in /etc/init.d/hadoop* ;
do
sudo $service start;
done
27.
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 (octocore avec 1TB de disque)
29.
30. Apprendre a Programmer en
MapReduce
•
Tutoriel officiel : http://hadoop.apache.org
•
Autres tutos : http://www.michaelnoll.com
•
Blog avec exemples d'applications :
http://www.datawrangling.com/
•
Support de formation Cloudera
– Videos
– Slides + fichiers exercices
– Images de machine virtuelle