Télécharger la présentation
1
Exposés logiciels, systèmes et réseaux
Apache Hadoop Exposés logiciels, systèmes et réseaux Camille DARCY 8 Janvier 2013
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
3
Un peu d’histoire... Initié par Doug Cutting
Pré-histoire : le projet Nutch ( ) 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
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
5
Objectifs Haute disponibilité / Robustesse Rapidité Abstraction
Mise à l’échelle
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
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
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
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
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
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
12
Architecture globale Configuration de l’architecture matérielle dans des fichiers XML ou via outils de supervision NameNodes et DataNodes : noeuds gérant la répartition des données et leur stockage (HDFS) JobTrackers et TaskTrackers : noeuds gérant la planification et l’exécution des calculs (MapReduce) Transparence au niveau du framework pour l’exécution de tâches
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
14
Modes d’execution Standalone mode Pseudo-distributed mode
Fully-distributed mode
15
Execution Standalone Objectif : Tester un programme simple ou MapReduce L’exemple du Sudoku
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 Configuration de l’architecture matérielle dans des fichiers XML ou via outils de supervision NameNodes et DataNodes : noeuds gérant la répartition des données et leur stockage (HDFS) JobTrackers et TaskTrackers : noeuds gérant la planification et l’exécution des calculs (MapReduce) Transparence au niveau du framework pour l’exécution de tâches
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>
18
Pseudo-distributed Configuration du/des DataNode(s) / TaskTracker(s) (slaves) conf/slaves: localhost Configuration de la réplication conf/hdfs-site.xml: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
19
Démonstration en mode pseudo-distributed
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) Configuration de l’architecture matérielle dans des fichiers XML ou via outils de supervision NameNodes et DataNodes : noeuds gérant la répartition des données et leur stockage (HDFS) JobTrackers et TaskTrackers : noeuds gérant la planification et l’exécution des calculs (MapReduce) Transparence au niveau du framework pour l’exécution de tâches
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>
22
Fully-distributed Configuration du/des DataNode(s) / TaskTracker(s) (slaves) conf/slaves: slave Configuration de la réplication conf/hdfs-site.xml: ... <configuration> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
23
Démonstration en mode distributed
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
25
Utilisateurs Yahoo! Facebook
Utilisait un cluster de 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 Et beaucoup d’autres : Twitter, LinkedIn, IBM, HP, Microsoft, Apple, Amazon, eBay...
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
27
Webographie Wikipedia Apache Hadoop Cloudera Yahoo! Hadoop
Apache Hadoop et Cloudera Yahoo! Hadoop Blog de Brad Hedlund network/
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.