Apache hadoop
Sponsored Links
This presentation is the property of its rightful owner.
1 / 27

Apache Hadoop PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


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


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


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


Objectifs

  • Haute disponibilité / Robustesse

  • Rapidité

  • Abstraction

  • Mise à l’échelle


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


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


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


MapReduce

  • Qu’est-ce que MapReduce ?

    • Un modèle de programmation pour faire du calcul distribué

    • Un framework

    • Implémentation Open-Source dans Hadoop


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


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


Architecture globale


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


Modes d’execution

  • Standalone mode

  • Pseudo-distributed mode

  • Fully-distributed mode


Execution Standalone

  • Objectif : Tester un programme simple ou MapReduce

L’exemple du Sudoku


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


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>


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>


Démonstration en mode pseudo-distributed


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)


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>


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>


Démonstration en mode distributed


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


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


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


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/


  • Login