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

Apache Hadoop PowerPoint PPT Presentation


  • 66 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

Apache Hadoop

  • Exposés logiciels, systèmes et réseaux

Camille DARCY

8 Janvier 2013


Apache hadoop

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

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

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

Objectifs

  • Haute disponibilité / Robustesse

  • Rapidité

  • Abstraction

  • Mise à l’échelle


Apache hadoop

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

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

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

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

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

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

Architecture globale


Executable hadoop

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

Modes d’execution

  • Standalone mode

  • Pseudo-distributed mode

  • Fully-distributed mode


Execution standalone

Execution Standalone

  • Objectif : Tester un programme simple ou MapReduce

L’exemple du Sudoku


Exemple de job mapreduce

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

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 distributed1

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

Démonstration en mode pseudo-distributed


Exemple de job mapreduce1

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

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 distributed1

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

Démonstration en mode distributed


Impl mentations et outils

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

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

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

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