Hadoop

43
Hadoop Zoghlami Manel Ben Hmida Imen Nefzaoui Lobna 30/05/2022 1 M1MPDAM Institut Supérieur des Etudes Technologiques de Rades Master professionnel développement des applications mobiles

Transcript of Hadoop

Page 1: 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

Page 2: Hadoop

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

Page 3: Hadoop

12/04/2023M1MPDAM 3

Introduction

Page 4: Hadoop

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 ?

Page 5: 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?

Page 6: 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

Page 7: Hadoop

12/04/2023M1MPDAM 7

Utilisations

Page 8: Hadoop

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

Page 9: 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

Page 10: Hadoop

12/04/2023M1MPDAM 10

Composants de base du système

Page 11: Hadoop

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

Page 12: 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

Page 13: Hadoop

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

Page 14: Hadoop

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

Page 15: Hadoop

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

Page 16: Hadoop

12/04/2023M1MPDAM 16

Les TaskTrackers exécute les jobs (Map et Reduce)

Ils communiquent au JobTracker l'état des jobs

Les composants : TaskTracker

Page 17: Hadoop

12/04/2023M1MPDAM 17

HDFS

Page 18: Hadoop

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

Page 19: Hadoop

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

Page 20: Hadoop

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

Page 21: Hadoop

12/04/2023M1MPDAM 21

Exemples

Page 22: Hadoop

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

Page 23: Hadoop

12/04/2023M1MPDAM 23

Map Reduce

Page 24: Hadoop

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

Page 25: Hadoop

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

Page 26: Hadoop

12/04/2023M1MPDAM 26

Principes de MapReduce

Page 27: Hadoop

12/04/2023M1MPDAM 27

Map :<k1, v1> → list(k2,v2)

Reduce :<k2, list(v2)> → list(k3,v3)

Principes de MapReduce

Page 28: Hadoop

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

Page 29: Hadoop

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

Page 30: Hadoop

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

Page 31: Hadoop

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

Page 32: Hadoop

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

Page 33: Hadoop

12/04/2023M1MPDAM 33

On utilise la commande hadoop pour lancer et paramétrer son job

Eléments de base dans l'API Java

Page 34: Hadoop

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

Page 35: Hadoop

12/04/2023M1MPDAM 35

Implémentations et outils bases sur Hadoop

Page 36: 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

Page 37: Hadoop

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

Page 38: Hadoop

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

Page 39: Hadoop

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

Page 40: Hadoop

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

Page 41: Hadoop

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

Page 42: Hadoop

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

Page 43: Hadoop

12/04/2023M1MPDAM 43

Merci Pour Votre Attention