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
24.
Running Streaming Jobs
hadoop jar /path/to/hadoop0.20.1streaming.jar
mapper /home/hadoop/mapper.py
reducer /home/hadoop/reducer.py
input gutenberg/*
output gutenbergoutput
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
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)
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
Il semblerait que vous ayez déjà ajouté cette diapositive à .
Créer un clipboard
Vous avez clippé votre première diapositive !
En clippant ainsi les diapos qui vous intéressent, vous pourrez les revoir plus tard. Personnalisez le nom d’un clipboard pour mettre de côté vos diapositives.
Créer un clipboard
Partager ce SlideShare
Vous avez les pubs en horreur?
Obtenez SlideShare sans publicité
Bénéficiez d'un accès à des millions de présentations, documents, e-books, de livres audio, de magazines et bien plus encore, sans la moindre publicité.
Offre spéciale pour les lecteurs de SlideShare
Juste pour vous: Essai GRATUIT de 60 jours dans la plus grande bibliothèque numérique du monde.
La famille SlideShare vient de s'agrandir. Profitez de l'accès à des millions de livres numériques, livres audio, magazines et bien plus encore sur Scribd.
Apparemment, vous utilisez un bloqueur de publicités qui est en cours d'exécution. En ajoutant SlideShare à la liste blanche de votre bloqueur de publicités, vous soutenez notre communauté de créateurs de contenu.
Vous détestez les publicités?
Nous avons mis à jour notre politique de confidentialité.
Nous avons mis à jour notre politique de confidentialité pour nous conformer à l'évolution des réglementations mondiales en matière de confidentialité et pour vous informer de la manière dont nous utilisons vos données de façon limitée.
Vous pouvez consulter les détails ci-dessous. En cliquant sur Accepter, vous acceptez la politique de confidentialité mise à jour.