Top Banner
1 Apache Hadoop Exposés logiciels, systèmes et réseaux Camille DARCY 8 Janvier 2013
27

Apache Hadoop

Jan 26, 2016

Download

Documents

ludlow

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Apache Hadoop

1

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

Camille DARCY8 Janvier 2013

Page 2: Apache Hadoop

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

Page 3: Apache Hadoop

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

Page 4: Apache Hadoop

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

Page 5: Apache Hadoop

5

Objectifs

•Haute disponibilité / Robustesse

•Rapidité

•Abstraction

•Mise à l’échelle

Page 6: Apache Hadoop

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

Page 7: Apache Hadoop

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

Page 8: Apache Hadoop

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

Page 9: Apache Hadoop

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

Page 10: Apache 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

Page 11: Apache Hadoop

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

Page 12: Apache Hadoop

12

Architecture globale

Page 13: Apache Hadoop

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

Page 14: Apache Hadoop

14

Modes d’execution

•Standalone mode

•Pseudo-distributed mode

•Fully-distributed mode

Page 15: Apache Hadoop

15

Execution Standalone

• Objectif : Tester un programme simple ou MapReduce

L’exemple du Sudoku

Page 16: Apache Hadoop

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

Page 17: Apache Hadoop

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>

Page 18: Apache Hadoop

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>

Page 19: Apache Hadoop

19

Démonstration en mode pseudo-distributed

Page 20: Apache Hadoop

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)

Page 21: Apache Hadoop

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>

Page 22: Apache Hadoop

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>

Page 23: Apache Hadoop

23

Démonstration en mode distributed

Page 24: Apache Hadoop

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

Page 25: Apache Hadoop

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

Page 26: Apache Hadoop

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

Page 27: Apache Hadoop

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/