Apache Hadoop

Preview:

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

1

Apache HadoopExposés logiciels, systèmes et réseaux

Camille DARCY8 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éplicationconf/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éplicationconf/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/

Recommended