2. Introduction
Composants de base du système
HDFS
Map Reduce
Implémentations et outils bases sur Hadoop
Relation entre le frame work Hadoop et le
concept BigData
IBM lance son mobile, de stockage et Hadoop
offres pour les mainframes
Conclusion
17/05/2014M1MPDAM 2
4. Hadoop est un framework Java libre destiné à
faciliter la création d'applications distribuées et
scalables.
Il permet aux applications de travailler avec des
milliers de nœuds et des pétaoctets de données.
Hadoop a été inspiré par les
publications MapReduce, GoogleFS et BigTable de
Google.
Hadoop a été créé par Doug Cutting et fait partie
des projets de la fondation logicielle Apache depuis
2009.
17/05/2014 4M1MPDAM
5. Nécessité de traiter beaucoup de données
Nécessité de paralléliser le traitement sur
multitude de processeurs
Donne évolutivité avec du matériel de base à
faible coût
17/05/2014 5M1MPDAM
6. Fonctionne sur du matériel de base pas cher
Gère automatiquement la réplication des données
et l'échec de nœud
Il fait le travail dur - vous pouvez vous concentrer
sur le traitement des données
Enregistrement des coûts et le traitement de
données efficace et fiable
17/05/2014 6M1MPDAM
8. Au commencement, deux publications Google :
Google File System (GFS) : une solution évolutive
système de fichiers distribué pour les applications
de données intensives réparties
MapReduce: Traitement des données simplifiée
sur les grands clusters
Ces systèmes décrivent la nouvelle infrastructure
Google, et restent propriétaires.
17/05/2014 8M1MPDAM
9. Pendant ce temps là, Doug Cutting, créateur de
Lucene et Nutch, cherche un framework pour
distribuer les calculs de graphes Nutch
Il implémente les principes de GFS et MapReduce
dans Nutch
Il est embauché par Yahoo! pour poursuivre ces
développements
Yahoo donne Hadoop à la fondation Apache
17/05/2014 9M1MPDAM
11. Hadoop se compose de deux systèmes : HDFS
et MapReduce
Cinq types de process vont gouverner ces
systèmes
17/05/2014 11M1MPDAM
12. Le Namenode est le process qui pilote HDFS :
il sait où sont stockées les données
C'est lui qui orchestre les DataNodes
Nécessite beaucoup de RAM
17/05/2014 12M1MPDAM
13. Le SecondaryNamenode prends des
snapshots des logs du Namenode à
intervalles réguliers
Ce n'est pas un backup du NameNode : il
peut aider à récupérer des données et
relancer un cluster, mais ça n'a rien
d'automatique
17/05/2014 13M1MPDAM
14. Les Datanodes sont les noeuds sur lesquels
résident les données
Ce sont eux qui traduisent les blocks HDFS en
fichiers sur disque
En communication constante avec le
Namenode
17/05/2014 14M1MPDAM
15. Le JobTracker pilote l'exécution des jobs sur
le cluster
C'est lui qui assigne les tâches aux
TaskTrackers, et gèrent leur cycle de vie
Il est également responsable de la gestion
des erreurs, et de la relance des jobs
17/05/2014 15M1MPDAM
16. Les TaskTrackers exécute les jobs (Map et
Reduce)
Ils communiquent au JobTracker l'état des
jobs
17/05/2014 16M1MPDAM
18. L'unité de stockage de base est le Block
(64Mb par défaut)
Chaque block est répliqué sur plusieurs
nœuds
HDFS est fault-tolerant : si un noeud tombe,
les autres noeuds peuvent continuer à servir
les fichiers
17/05/2014 18M1MPDAM
19. HDFS est orienté batchs : pas adapté aux
traitements online
HDFS est orienté « write once, read many
times » : pas de modifications arbitraires au
milieu d'un fichier
HDFS n'est pas fait pour stocker beaucoup de
petits fichiers : trop de metadata à maintenir
17/05/2014 19M1MPDAM
20. Supporte différents types de compressions :
GZIP,BZ, LZO
Filesystem manipulable via Java, C…
Hadoop supporte également d'autres types
de file systems : local, FTP…
17/05/2014 20M1MPDAM
22. On peut stocker des données sous forme de
fichier texte standard
Ou sous forme de fichier binaire optimisé
pour MapReduce, compressable, splittable : le
SequenceFile
Existe aussi en version permettant des
lookups : le MapFile
17/05/2014 22M1MPDAM
24. MapReduce n'est pas un langage, c'est un
paradigme de programmation. L'idée est de
découper un traitement de données en deux
phases.
La première phase est le Map : c'est là que
l'on va transformer les données en entrée
La seconde phase est le reduce : on va y
aggréger les résultats du Map
17/05/2014 24M1MPDAM
25. Le format de base des échanges entre map et
reduce est la paire clé / valeur
La sérialisation des objets est gérée par
Hadoop, sous forme de Writable : pas de
sérialisation Java native
Hadoop fournit des types primitifs
sérializables, mais on peut bien sûr fournir
ses propres types complexes
La phase de shuffle, entre map et reduce, va
partitionner les données par clé
17/05/2014 25M1MPDAM
28. Tout commence par la définition d'un Job,
basé sur une Configuration, et sur des
paramètres utilisateurs:
17/05/2014 28M1MPDAM
29. On donne à ce job des implémentations de
Mapper, Reducer, types des fichiers d'entrée
et sortie , types des paramètres.
17/05/2014 29M1MPDAM
30. Le Mapper est très simple : on extrait l'url, et
on « émet » un compteur de 1
17/05/2014 30M1MPDAM
31. Le Reducer additionne les valeurs obtenue
pour une même clé.
Hadoop propose pour ce type de Reducer le
LongSumReducer.
17/05/2014 31M1MPDAM
32. Si on veut travailler sur des types non
primitifs, on peut créer un
WritableComparable
17/05/2014 32M1MPDAM
33. On utilise la commande hadoop pour lancer
et paramétrer son job
17/05/2014 33M1MPDAM
34. L'utilisation d'Hadoop n'est pas réservée aux
jobs Java. Tout langage lisant STDIN /
STDOUT peut se brancher sur la Streaming
API : PHP, Ruby, Python...
On va spécifier en paramètre les scripts à
exécuter lors des phases de map et reduce
17/05/2014 34M1MPDAM
36. Le système de base de données non-
relationnelles distribué HBase utilise le système
de fichiers HDFS pour le stockage de données.
Sa particularité d‘étre structuré pour pouvoir
gérer de grandes tables de données. Inspirée
également des publications de Google sur sa
base de données Big Table, elle a pour
caractéristique d‘étre une base de données
orientée colonnes.
HBase est aujourd'hui largement utilisé par de
nombreuses grandes entreprises, comme
Facebook qui l'utilise depuis 2010 en
remplacement de Cassandra.
17/05/2014 36M1MPDAM
37. Hive est un projet visant à assurer
l'indexation, l'accés et l'analyse de gros
volumes de données. Il permet de fournir une
infrastructure de datawarehouse, construite
sur la base du framework Hadoop.
Cette implémentation dispose d'un langage
de requête particulier, HiveQL, utilisant des
tâches MapReduce pour accéder à des
données de manière distribuée.
Initialement développé par Facebook, il fait
partie aujourd'hui de la fondation Apache et
est maintenu par des entreprises comme
Netflix et Amazon.
17/05/2014 37M1MPDAM
38. Un autre projet de la fondation
Apache, Mahout, a pour objectif
de fournir une bibliothèque
permettant le développement
d'applications distribuées de
machine-learning. Cette
bibliothèque peut s'interfacer avec
des applications Hadoop et fournit
de nombreux algorithmes pouvant
s'exécuter sur des clusters de
machines.
17/05/2014 38M1MPDAM
39. Dans le cadre de l'administration de
clusters et d'applications distribuées,
ZooKeeper, permet de configurer les
machines physiques et services
entrant dans le contexte
d'applications construites sur
Hadoop. Il s'agit également d'un
projet de la fondation Apache,
largement utilisé par les entreprises
gérant de gros volumes de données.
17/05/2014 39M1MPDAM
40. Le projet Chukwa, construit également sur
Hadoop, permet l'analyse et le monitoring
des taches MapReduce. Celui-ci est
principalement utilisé pour l'analyse de logs
collectés via des plate-formes Web.
17/05/2014 40M1MPDAM
41. Cloudera est une start-up de la Silicon
Valley, fondée par Jeff Hammerbach, ancien
de chez Facebook ainsi que des ingénieurs
de chez Yahoo ayant travaillé dans le
domaine du distribué sur les projets Nutch
et Hadoop.
Depuis 2011, elle fournit une distribution
basée sur Unix, Cloudera CDH, embarquant
la version 1.0 de la bibliothèque Hadoop.
Les intérêts de cette distribution sont de
pouvoir déployer rapidement Hadoop sur
des machines (via le réseau), de manière
homogène, ce qui simplifie et accélére la
configuration et la mise en place de clusters
de machines dans les entreprises.
17/05/2014 41M1MPDAM
42. Hadoop a été solution très efficace pour les
entreprises qui traitent des données à
perabytes.
Il a résolu de nombreux problèmes dans
l'industrie liés à la grande gestion de données
et système distribué Comme il est open
source, il est adopté par les entreprises à
grande échelle..
17/05/2014 42M1MPDAM