Hadoop
-
Upload
institut-superieur-des-etudes-technologiques-de-rades -
Category
Technology
-
view
302 -
download
2
Transcript of Hadoop
12/04/2023M1MPDAM 1
HadoopZoghlami ManelBen Hmida ImenNefzaoui Lobna
Institut Supérieur des Etudes Technologiques de Rades Master professionnel développement des applications
mobiles
12/04/2023M1MPDAM 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
Plan
12/04/2023M1MPDAM 3
Introduction
12/04/2023M1MPDAM 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.
Qu'est ce qu'Hadoop ?
12/04/2023M1MPDAM 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
Pourquoi Hadoop?
12/04/2023M1MPDAM 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
Avantages de Hadoop
12/04/2023M1MPDAM 7
Utilisations
12/04/2023M1MPDAM 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.
Les origines d'Hadoop
12/04/2023M1MPDAM 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
Les origines d'Hadoop
12/04/2023M1MPDAM 10
Composants de base du système
12/04/2023M1MPDAM 11
Hadoop se compose de deux systèmes : HDFS et MapReduce
Cinq types de process vont gouverner ces systèmes
Les composants Hadoop
12/04/2023M1MPDAM 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
Les composants : Namenode
12/04/2023M1MPDAM 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
Les composants :SecondaryNamenode
12/04/2023M1MPDAM 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
Les composants : Datanode
12/04/2023M1MPDAM 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
Les composants : JobTracker
12/04/2023M1MPDAM 16
Les TaskTrackers exécute les jobs (Map et Reduce)
Ils communiquent au JobTracker l'état des jobs
Les composants : TaskTracker
12/04/2023M1MPDAM 17
HDFS
12/04/2023M1MPDAM 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
Principes de HDFS
12/04/2023M1MPDAM 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
Limites de HDFS
12/04/2023M1MPDAM 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…
Features
12/04/2023M1MPDAM 21
Exemples
12/04/2023M1MPDAM 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
Types de fichiers
12/04/2023M1MPDAM 23
Map Reduce
12/04/2023M1MPDAM 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
Principes de MapReduce
12/04/2023M1MPDAM 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é
Principes de MapReduce
12/04/2023M1MPDAM 26
Principes de MapReduce
12/04/2023M1MPDAM 27
Map :<k1, v1> → list(k2,v2)
Reduce :<k2, list(v2)> → list(k3,v3)
Principes de MapReduce
12/04/2023M1MPDAM 28
Tout commence par la définition d'un Job, basé sur une Configuration, et sur des paramètres utilisateurs:
Eléments de base dans l'API Java
12/04/2023M1MPDAM 29
On donne à ce job des implémentations de Mapper, Reducer, types des fichiers d'entrée et sortie , types des paramètres.
Eléments de base dans l'API Java
12/04/2023M1MPDAM 30
Le Mapper est très simple : on extrait l'url, et on « émet » un compteur de 1
Eléments de base dans l'API Java
12/04/2023M1MPDAM 31
Le Reducer additionne les valeurs obtenue pour une même clé.
Hadoop propose pour ce type de Reducer le LongSumReducer.
Eléments de base dans l'API Java
12/04/2023M1MPDAM 32
Si on veut travailler sur des types non primitifs, on peut créer un WritableComparable
Eléments de base dans l'API Java
12/04/2023M1MPDAM 33
On utilise la commande hadoop pour lancer et paramétrer son job
Eléments de base dans l'API Java
12/04/2023M1MPDAM 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
La Streaming API
12/04/2023M1MPDAM 35
Implémentations et outils bases sur Hadoop
12/04/2023M1MPDAM 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.
HBASE
12/04/2023M1MPDAM 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.
Hive
12/04/2023M1MPDAM 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.
Mahout
12/04/2023M1MPDAM 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.
Administration de clusters
12/04/2023M1MPDAM 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.
Chukwa
12/04/2023M1MPDAM 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.
Cloudera
12/04/2023M1MPDAM 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..
Conclusion
12/04/2023M1MPDAM 43
Merci Pour Votre Attention