Download - Apache Hadoop
![Page 1: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/1.jpg)
1
Apache HadoopExposés logiciels, systèmes et réseaux
Camille DARCY8 Janvier 2013
![Page 2: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/2.jpg)
2
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
![Page 3: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/3.jpg)
3
Un peu d’histoire...
•Initié par Doug Cutting
•Pré-histoire : le projet Nutch (2002-2004)
•Développement influencé par les publications sur GFS et MapReduce
•En 2009, intégré à la fondation Apache
•Sortie de la v1.0.0 Open-Source en 2011
![Page 4: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/4.jpg)
4
Le framework Java
•Bibliothèque logicielle Java
• Facilite le développement de systèmes d’analyse et de stockage de Big Data
• Fournit un ensemble d’outils (executables, démons...)
•Exécution de calculs sur une à plusieurs milliers de machines (clusters)
•Deux concepts majeurs : HDFS et MapReduce
![Page 5: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/5.jpg)
5
Objectifs
•Haute disponibilité / Robustesse
•Rapidité
•Abstraction
•Mise à l’échelle
![Page 6: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/6.jpg)
6
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
![Page 7: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/7.jpg)
7
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
![Page 8: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/8.jpg)
8
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
![Page 9: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/9.jpg)
9
MapReduce
•Qu’est-ce que MapReduce ?
•Un modèle de programmation pour faire du calcul distribué
•Un framework
•Implémentation Open-Source dans Hadoop
![Page 10: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/10.jpg)
10
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
![Page 11: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/11.jpg)
11
MapReduce dans Hadoop
•Utilise HDFS en mode distribué
•JobTracker : Noeud maître responsable de l’exécution de tâches sur un cluster
•TaskTracker : Noeud esclave exécutant une tâche (map) sur une partie des données
![Page 12: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/12.jpg)
12
Architecture globale
![Page 13: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/13.jpg)
13
Executable Hadoop
• bin/hadoop fs [command_options]
Manipulation du système de fichiers distribué (HDFS)
• bin/hadoop jar <jar> mainClass [args]
Lancement d’une application Hadoop
• bin/hadoop job [-submit, -status, -kill...]
Programmer / gérer des tâches
![Page 14: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/14.jpg)
14
Modes d’execution
•Standalone mode
•Pseudo-distributed mode
•Fully-distributed mode
![Page 15: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/15.jpg)
15
Execution Standalone
• Objectif : Tester un programme simple ou MapReduce
L’exemple du Sudoku
![Page 16: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/16.jpg)
16
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
![Page 17: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/17.jpg)
17
Pseudo-distributed
• Configuration du NameNode et du JobTracker (master)conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/masters:
localhost
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
![Page 18: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/18.jpg)
18
Pseudo-distributed
• Configuration du/des DataNode(s) / TaskTracker(s) (slaves)
conf/slaves:
localhost
• Configuration de la réplicationconf/hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
![Page 19: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/19.jpg)
19
Démonstration en mode pseudo-distributed
![Page 20: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/20.jpg)
20
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)
![Page 21: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/21.jpg)
21
Fully-distributed
• Configuration du NameNode et du JobTracker (master)conf/core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
conf/masters:
master
conf/mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>master:9001</value>
</property>
</configuration>
![Page 22: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/22.jpg)
22
Fully-distributed
• Configuration du/des DataNode(s) / TaskTracker(s) (slaves)
conf/slaves:
slave
• Configuration de la réplicationconf/hdfs-site.xml:
...
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
![Page 23: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/23.jpg)
23
Démonstration en mode distributed
![Page 24: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/24.jpg)
24
Implémentations et outils
• Stockage de données : HBase (Apache)
• Analyse de données : Pig (Yahoo!), Hive (Facebook), Mahout, Hama
• Configuration de clusters : ZooKeeper, Chukwa
• Une distribution Hadoop : Cloudera
![Page 25: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/25.jpg)
25
Utilisateurs•Yahoo!
Utilisait un cluster de 10000 machines sous Linux en 2008 rien que pour son moteur de recherche
Détient le plus grand cluster de machines avec plus de 100 Pétaoctets de stockage en 2012
•Et beaucoup d’autres : Twitter, LinkedIn, IBM, HP, Microsoft, Apple, Amazon, eBay...
![Page 26: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/26.jpg)
26
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
![Page 27: Apache Hadoop](https://reader035.vdocuments.mx/reader035/viewer/2022062222/56815465550346895dc27f66/html5/thumbnails/27.jpg)
27
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/
• Blog de Brad Hedlund
• http://bradhedlund.com/2011/09/10/understanding-hadoop-clusters-and-the-network/