Académique Documents
Professionnel Documents
Culture Documents
Camille DARCY
8 Janvier 2013 1
Plan
• Un peu d’histoire...
• Le framework et ses objectifs
• Les grands concepts
• le système de fichiers HDFS
• MapReduce
• Exemples d’utilisation
• Quelques implémentations et outils
• Conclusion 2
Un peu d’histoire...
5
HDFS
• Stockage de données distribué
• Inspiré par le Google FileSystem
(GFS)
• Haute disponibilité / réplication des
données
• Blocs de 64Mo (chunks)
• Utilise TCP/IP et RPC
6
Hôtes HDFS
• Architecture Maître / Esclave
• NameNode : Gère l’espace de noms du
système de fichiers (serveurs esclaves)
et l’accès aux fichiers par les clients
• DataNode : Gère le stockage des fichiers
sur un noeud (création / suppression de
blocs de données, réplication)
• Réplication configurable
7
Problématiques traitées par HDFS
• Robustesse
• « Battements de coeur »
• Auto-balancing
• Sommes de contrôle
• Organisation des données
• Découpage des fichiers en blocs
• Mise en cache des fichiers avant insertion
• Replication entre DataNodes
8
MapReduce
• Qu’est-ce que MapReduce ?
• Un modèle de programmation
pour faire du calcul distribué
• Un framework
• Implémentation Open-Source
dans Hadoop
9
Fonctionnement de
MapReduce
• Traitement distribué de données en deux
fonctions
• Map : fonction de traitement par
décomposition en sous-problèmes
• Etape intermédiaire : Combine
• Reduce : fonction d’aggrégation des
résultats pour composer une unique
solution
1
MapReduce dans Hadoop
1
Architecture
globale
1
Executable Hadoop
• bin/hadoop fs [command_options]
Manipulation du système de fichiers distribué
(HDFS)
1
Modes d’execution
• Standalone mode
• Pseudo-distributed mode
• Fully-distributed mode
1
Execution Standalone
• Objectif : Tester un programme simple ou
MapReduce
L’exemple du Sudoku
1
Exemple de Job
MapReduce
• Job MapReduce = Programme Java
• Execution de la commande Grep
• En entrée : fichiers de configuration
Hadoop
• En sortie : mots correspondant à une
regex et son nombre d’occurences
1
Pseudo-distributed
• Configuration de la réplication
conf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
1
Démonstration en mode
pseudo-distributed
1
Exemple de Job
MapReduce
• Compter les mots dans un ensemble de
fichiers
• En entrée : oeuvres de Victor Hugo
• En sortie : chaque mot et son nombre
d’occurences
• Exécution en mode distribué (machine +
VM)
2
Fully-distributed
• Configuration de la réplication
conf/hdfs-site.xml:
...
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
2
Démonstration en mode
distributed
2
Implémentations et
outils
• Stockage de données : HBase (Apache)
• Analyse de données : Pig (Yahoo!), Hive
(Facebook), Mahout, Hama
2
Utilisateurs
• Yahoo!
Utilisait un cluster de 10000 machines sous Linux en
2008 rien que pour son moteur de recherche
• Facebook
Détient le plus grand cluster de machines avec plus
de 100 Pétaoctets de stockage en 2012
2
Conclusion
• Base intéressante pour pouvoir
gérer de gros volumes de données
• Combinaison de HDFS et de
MapReduce
• Implémenté dans de nombreux
outils
• Puissant mais difficile à implémenter
2
Webographie
• Wikipedia
• http://en.wikipedia.org/wiki/Apache_Hadoop
• Apache Hadoop
• http://hadoop.apache.org et http://wiki.apache.org/hadoop/
• Cloudera
• http://www.cloudera.com/hadoop/
• Yahoo! Hadoop
• http://developer.yahoo.com/blogs/hadoop/