1 / 27

Apache Hadoop

Apache Hadoop. Exposés logiciels, systèmes et réseaux. Camille DARCY 8 Janvier 2013. 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.

ludlow
Télécharger la présentation

Apache Hadoop

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 (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

  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

  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

  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)

  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! • 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 • 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 • 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/

More Related