Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Chapitre 5 LEcosystème Hadoop

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 48

Ministère de l’enseignement supérieur et de recherches scientifiques

Institut Supérieur des Etudes Technologiques de Radès


Département Technologies de l’ information

Chapitre 5 :
L'écosystème Hadoop

MSAKNI IMEN Hadoop


Objectifs
Objectifs

• Les bases de Hadoop


• Architectures Hadoop
• HDFS
• MapReduce
• YARN
• Hadoop Common
• Ecosystéme et projets en relation

MSAKNI IMEN Hadoop


Importance de Hadoop
“We believe that more than half of the world’s data will be stored in Apache Hadoop within five years”.
Hortonworks

MSAKNI IMEN Hadoop


Hadoop..un peu d’histoire

2012 2020
Doug Cutting(
2011
employé Yahoo et HADOOP
developpeur de HADOOP 3.3.0
Nutch : Web 2006 HADOOP 2.0
Crawlers ) a Cutting/Yahoo HADOOP est 1.0
commencé a
ont renommé devenu Open
utilisé Mapreduce
leurs efforts
2004 pour l’indexation HADOOP Source
Apparition de
2003 Big Table
Google
Google a publie un
développé article sur
son GFS Mapreduce

2001

MSAKNI IMEN Hadoop


Qui utilise Hadoop?

MSAKNI IMEN Hadoop


Hadoop
Présentation
• Hadoop est un système distribué, tolérant aux pannes, pour le
stockage de données, est hautement scalable. Cette capacité de
monter en charge est le résultat d'un stockage en cluster connu sous
l'acronyme de HDFS (Hadoop Distributed File System) et d'un
traitement distribué spécifique et robuste connu sous le nom de
MapReduce.

MSAKNI IMEN Hadoop


Hadoop
Présentation
 C’est un Framework Apache open source pour le traitement fiable, distribué de données de masse.
• Cache à l’utilisateur les details et la complexité du système .
• Developpé en Java.
 Consiste en 4 sous-projets:
• MapReduce : MapReduce est un framework logiciel de traitement parallèle.
• HDFS (Hadoop Distributed File System): est un système scalable basé sur le Java permettant de stocker des données
sur de nombreuses machines sans organisation préalable
• Hadoop Common : rassemble les bibliothèques et les utilitaires utilisés par les autres modules.
• Le YARN (Yet Another Resource Negotiator) permet de gérer les ressources pour les processus effectués sur la
plateforme)
 Supporté par plusieurs projets reliés :
• HBase
• Zookeeper
• Avro
• Etc.

MSAKNI IMEN Hadoop


Hadoop
Présentation
• Une nouvelle manière de stoker et traiter les données:
• Permet au système de gérer la majorité des problèmes automatiquement:
• Pannes
• Passage à l’echelle.
• Minimiser les communications .
• Distribuer les traitements .
• Matériel relativement peu couteux .
• Amener les traitements aux données: Traiter les données directement là où elles sont stockées, plutôt que
de les copier à partir d’un serveur distribué c’est le principe de la localité des données
• Hadoop = HDFS + Infrastructure MapReduce
• Fiabilité garantie par la réplication.

MSAKNI IMEN Hadoop


Hadoop
Présentation
• Hadoop traite et analyse une multitude de nouvelles et anciennes données pour en extraire de la
connaissance significative sur les opérations commerciales.
• Hadoop permet de répondre aux problématiques suivantes :
l'analyse des événements - quelles séries d'étapes mènent à un achat ou à une signature ;
l'analyse de clics sur des flux web à grande échelle ;
l'assurance des revenus et l'optimisation des prix ;
la gestion des risques financiers ;
et beaucoup d'autres…

MSAKNI IMEN Hadoop


Hadoop
Présentation
De quelle façon Hadoop est utilisé par les entreprises ?
Le stockage low-cost et l’archive de données
Un bac à sable pour la découverte et l’analyse
Data Lake
Complémenter les Data Warehouses
Moteur de recommandations

MSAKNI IMEN Hadoop


Hadoop
Présentation
SGBDR HADOOP
Source de données Données structurées avec schéma Données peu structurées et non
connu. structurées.
Type de données Enregistrements, objets,XML, etc fichiers
Mise à jour des données Mises à jour Insertion et suppression
Langages SQL Pig, Hive et Jaql
Traitement Réponse rapide, accès aléatoire Traitement en Batch
Accès aux données Accès aléatoire (indexation) Accès aus fichiers seulement
(streaming)

MSAKNI IMEN Hadoop


Hadoop
Le principe de la localité des données
Application
(Client)

Programme
Programme Programme

RAM RAM RAM Traitements

Disque Disque Disque

MSAKNI IMEN Hadoop


Hadoop
2 aspects clés
• Framework MapReduce
• Comment Hadoop comprend et affecte les tâches aux noeuds (machines)
dans un cluster?

• HDFS (Hadoop Distributed File System)


• Où Hadoop stoke les données?

MSAKNI IMEN Hadoop


HDFS
Présentation
• HDFS est donc la version open source du Google File System, dont le but est de
fournir un environnement de stockage distribué et tolérant aux pannes pour de
très gros fichiers. HDFS peut être utilisé directement comme service d’accès à ces
fichiers, ou indirectement par des systèmes de gestion de données (HBase pas
exemple) qui obtiennent ainsi la distribution et la résistance aux pannes sans
avoir à les implanter directement.

MSAKNI IMEN Hadoop


HDFS
Présentation
• HDFS stocke les données à travers plusieurs noeuds.

• HDFS réplique ces données sur plusieurs noeuds pour réduire les
risques d’échecs des noeuds du cluster (fiabilité)

• Le système de fichier est construit selon le nombre de noeuds “de


données”. Chaque noeud sert des blocs de données en utilisant un
protocole de blocs spécifique à HDFS.
• Possibilité de créer, supprimer, copier, mais PAS de mise à jour

MSAKNI IMEN Hadoop


HDFS
Architecture
Architecture Master / Slave
NameNode
• Master: NameNode
• S'ocuppe de la division des données dans les DataNode
• Savoir où se trouve chaque partie du fichier
• Réplication
• Répartition
• Tolérance aux fautes
Avoir une visibilité sur l'ensemble du cluster

• Slave: DataNode
• Plusieurs par cluster a b a c
• Gére le stockage asocié aux noeuds b a b
d c c d
• Envoi périodiquement les rapports sur son état au NameNode
DataNodes
MSAKNI IMEN Hadoop
HDFS
Les blocs
• HDFS est conçu pour prendre en charge des fichiers très volumineux
• Chaque fichier est découpé en blocs
• Par défaut: 64MB
• Autres (exemple: IBM BigInsights : 128MB)
• Les blocs résident dans différents DataNode
• Dans les coulisses, 1 bloc dans le HDFS est pris en charge par plusieurs blocs de OS

64 MB Blocs HDFS

Blocs OS

MSAKNI IMEN Hadoop


HDFS
Les blocs
• Si un fichier ou un morceau de fichier est plus petit que la taille du bloc, seul l’espace requis est utilisé.
• Exemple: un fichier de taille 150MB est découpé comme suit:
Exemple : MyData.txt

64 MB 64 MB 22 MB
HDFS :
 découper le fichier en bloc
 Répartir ces blocs sur l'ensemble des DataNode
 Répliquer ces blocs sur l'ensemble des DataNodes
 Gérer les pannes (Plus on rajoute de machines plus on a le risque de pannes )

MSAKNI IMEN Hadoop


HDFS DataNode
Les blocs DN
DN

DN

DN
DN

MyData.txt

64 MB 64 MB 22 MB NameNode
NN

MSAKNI IMEN Hadoop


HDFS
Réplications
Les blocs de données sont répliqués sur plusieurs nœuds
Le comportement est contrôlé par un facteur de
réplication, qui est configuré par fichier (Par défaut 3
réplicas )
Cas communs:
• Un réplica sur un seul nœud dans le
rack local
• Un autre réplica sur un autre nœud
dans le rack local
• Le dernier réplica sur un nœud
différent dans un rack différent
Cela permet de réduire la bande
passante inter-rack, ce qui améliore
la performance d’écriture.
MSAKNI IMEN Hadoop
MapReduce
Présentation
• Créé pour aider les développeurs Google à analyser d'énormes ensembles de
données
• C’est un framework d’exécution. Processus en deux phases ,appliqué à une
collection d’items.
• À chaque phase, on applique une fonction fournie par le développeur.
• Quel intérêt ? : Implanter de manière générique une exécution de type "group
by" à la SQL.
• Scalable car facilement exécutable en parallèle.
• Ce n’est pas l’idéal ! Très contraint, très peu expressif, lent.
• Cas particulier d’une chaîne de traitement scalable. Principe très ancien (prog.
fonctionnelle), remis au goût du jour par Google (2004) pour traitements
massivement distribués. MSAKNI IMEN Hadoop
MapReduce
Principe

MSAKNI IMEN Hadoop


MapReduce
Traitement

OBJECTIF Calculer le total des ventes par magasin


pour l’année 2019

18/02/2019 Miami Toys 25.99


02/03/2019 NYC Music 12.15 Clé Valeur
03/03/2019 Miami Clothes 50.00 Miami 201.79
03/03/2020 Miami Toys 25.20 NYC 12.15
01/03/2019 Miami Clothes 125.80

MSAKNI IMEN Hadoop


MapReduce
Traitement
Clé Valeur
Miami 25.99
DN NYC 12.15

Etape 1: Map
18/02/2019 Miami Toys 25.99
02/03/2019 NYC Music 12.15
03/03/2019 Miami Clothes 50.00 Clé Valeur
03/03/2020 Miami Toys 25.20 DN Miami 50.00
03/03/2019 Miami Clothes 125.80 Miami 125.80

MSAKNI IMEN Hadoop


MapReduce
Traitement Clé Valeur
Clé Valeur Miami 25.99
Miami 25.99 NYC 12.15
NYC 12.15 Miami 50.00
Etape 2: Shuffle Miami 125.80

18/02/2019 Miami Toys 25.99


Clé Valeur Etape 2’:
02/03/2019 NYC Music 12.15 Sort
Miami 50.00
03/03/2019 Miami Clothes 50.00
Miami 125.80
03/03/2020 Miami Toys 25.20 Clé Valeur
01/03/2019 Miami Clothes 125.80 Miami 25.99
Miami 50.00
Miami 125.80
NYC 12.15
MSAKNI IMEN Hadoop
Traitement MapReduce
Clé Valeur
Miami 25.99
Miami 50.00
Miami 25.20
NYC 12.15

18/02/2019 Miami Toys 25.99 Etape 3: Reduce


02/03/2019 NYC Music 12.15
03/03/2019 Miami Clothes 50.00 Clé Valeur
03/03/2020 Miami Toys 25.20 Miami 201.79
01/03/2019 Miami Clothes 125.80 NYC 12.15

MSAKNI IMEN Hadoop


Mapreduce V1(MRv1)
Composants
MapReduce intègre trois composants : MapReduce 1
API
Pour prmettre au programmeur d'écrire les API

applications Mapreduce.
Frameworks M
Framework
Services permettant l'exécution des jobs
MapReduce, le Shuffle, le Sort.
Ressource Managment Ressource Managment
Infrastructure pour gérer les noeuds du cluster,
allouer des ressources et ordonnancer les jobs
MSAKNI IMEN Hadoop
Mapreduce V1(MRv1)
Démons
• Architecture Master / Slave
• Un seul master (JobTracker) contrôle l’exécution des tâches sur plusieurs noeuds(TaskTrackers).
• JobTracker
• Accepte les tâches MapReduce soumises par les clients.
• Envoyer les tâches Map et Reduce aux TaskTrackers.
• Conserver les tâches le plus proche possible des données (càd sur les machines physiques).
• Surveille les tâches et le statut du TaskTracker.
• TaskTracker
• Exécute les tâches Map et Reduce.
• Envoie les rapports de monitoring au JobTracker.
• Gère le stockage et la transmission des résultats (output) intermédiaires.

MSAKNI IMEN Hadoop


Mapreduce V1(MRv1)
Fonctionnement
• Un job MapReduce (ou application MapReduce) est divisé en plusieurs tâches appelées Mappers et
Reducers
• Chaque tâche est exécutée sur un nœud du cluster
• Chaque nœud a un ensemble de Slots prédefinis:
 Map Slots
 Reduce Slots
• Un slot est une unité d'xécution qui représente la capacité du task Tracker à exécuter une tâche (Map ou
Reduce ) , individuellment à un moment donnée.
• Le job Tracker se charge à la fois de:
 Allouer les ressources (CPU, mémoire,….) aux différentes tâches .
 De coordonner l'exécution des jobs Map Reduce.
 De réserver et ordonnancer les slots et de gérer les fautes en réallouant les slots si besoin .

MSAKNI IMEN Hadoop


Mapreduce V1(MRv1)
Tolérance aux fautes
Noeud JobTracker

JobTracker 3 Echec du JobTracker

heartbeat

2 Echec du TaskTracker
TaskTracker

JVM fille

Fils

1 Echec d’une tâche


Tâche Map
ou reduce

Noeud TaskTracker
30
3030
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec d’une fonction
• Si une fonction fille échoue, la JVM fille envoies un rapport au TaskTracker avant qu'elle quitte
et une autre fonction s’exécute.
• Si la fonction fille se bloque, elle sera détruite. Le JobTracker re-planifie la tâche sur une autre
machine..
• Si l’échec de la fonction persiste la tâche va échouer.

31
3131
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec du TaskTracker
• JobTracker ne reçoit aucun signal du TaskTracker depuis un moment.
• Supprime le TaskTracker du groupe de TaskTrackers pour planifier d’autres tâches.

32
3232
Mapreduce V1(MRv1)
Tolérance aux fautes
• Echec du JobTracker
• Point de défaillance unique.
• Echec du JobTracker Echec du job

33
3333
Mapreduce V1(MRv1)
Problèmes
• Le Job Tracker s'exécute sur une seul machine et fait plusieurs tâches( gestion de ressources,
monotoring, ordonnancement)
Problèmes de scalabilité: les nombreux DataNodes existants ne sont pas exploités et le
nombre de nœuds par cluster est limité à 4000.
• Si le Job Tacker tombe en panne tous les jobs doivent redémarrer
Problème de disponibilité : SPoF .
• Le nombre de map slots et reduce slots est prédifini
Problème d'exploitation : si on a plusieurs map jobs à exécutés et le map slots sont pleins , les
reduces slots ne peuvent pas être utilisés.
• Le job Tracker est fortement intégré à Map Reduce
Problème d'interopérabilité: impossible d'exécuter des applications non MapReduce ou HDFS
.

MSAKNI IMEN Hadoop


Mapreduce V2(MRv2) MapReduce
Composants
API
• MapReduce v2 sépare la gestion des M
ressources de celle de tâches MapReduce
Framework
• Pas de notions de slots
Les nœuds ont des ressources qui sont allouées à
la demande.
• Définition des nouveaux démons YARN
La plupart des fonctionnalités du Job Tracker sont YARN API
déplacés vers l'Application Master M
Un cluster peut avoir plusieurs Application Master. Ressource Managment
• Support des applications MR et non MR
MSAKNI IMEN Hadoop
Mapreduce V2(MRv2)
Démons
• Resource Manager (RM)
• Tourne sur le nœud Master .
• Ordonnanceur global des ressources.
• Permet l'arbitrage des ressources entre plusieurs applications.
• Node Manager (NM)
• S'exécute sur le noeud escalve
• Communique avec RM
• Containers
• Creé par RM à la demande
• Se voit allouer les ressources sur les noeuds esclaves
• Application Master (AM)
• Une seule par application
• s'exécute sur un container
• Demande plusieurs containers pour exécuter les tâches de l'application
MSAKNI IMEN Hadoop
Mapreduce V2(MRv2)
Lancement d’une application dans un cluster
YARN
Node Manager

Application
Cliente

1 Application MyApp Node Manager


Allocation MyApp
4
Déclenche
6
Resource 3 Demande Ressources
Manager Node Manager Application
5 Master
ID
2
Déclenche 4 Containers
6 Déclenche
Allocation Node Manager
MyApp
MSAKNI IMEN Hadoop
Mapreduce V2(MRv2)
Lancement d’une application dans un cluster YARN
Node Manager
Application YourApp
Application
Cliente
Cliente

Node Manager
MyApp
Application
Master

Resource
Manager Node Manager Application
YourApp Master

Node Manager
MyApp
MSAKNI IMEN Hadoop
Mapreduce V2(MRv2)
Exécution d’un job MapReduce Data Node

Node Manager
Block 1
Application My Map Reduce
My
Cliente My MapReduce Data
Data Node

Node Manager
Allocation Block 2
My Map Reduce

Data Node
Resource
Demande Ressources Node Manager Application
Manager
Master

Data Node
Node Manager

MSAKNI IMEN Hadoop


Mapreduce V2(MRv2)
Exécution d’un job MapReduce Data Node

Node Manager
Block 1
My MR
Application Map Task
Cliente My Map Reduce
Data Node

Node Manager Block 2


Allocation My MR
Map Task

Data Node
Resource
Demande Node Manager Application
Manager
Ressources Master
(Mappers)
Data Node
Node Manager

MSAKNI IMEN Hadoop


Mapreduce V2(MRv2)
Exécution d’un job MapReduce Data Node

Node Manager
Block 1
Application
Cliente My Map Reduce Data Node

Node Manager Block 2


Allocation My MR
Reduce Task
Data Node
Resource
Demande Node Manager Application
Manager
Ressources Master
(Reducers)
Data Node
Allocation Node Manager
My MR
MSAKNI IMEN Hadoop Reduce Task
L’écosystème Hadoop

MSAKNI IMEN Hadoop


L’écosystème Hadoop
Extensions
Hive (Facebook) : Requêtage des données
•Hive est à l’origine un projet Facebook qui permet de faire le lien entre le monde SQL et Hadoop.
•Il permet l’exécution de requêtes SQL sur un cluster Hadoop en vue d’analyser et d’agréger les données.
•Le langage SQL est nommé HiveQL. C’est un langage de visualisation uniquement, c’est pourquoi seules
les instructions de type “Select” sont supportées pour la manipulation des données.
 Pig (Yahoo) : Scripting sur les données
•Pig est à l’origine un projet Yahoo qui permet le requêtage des données Hadoop à partir d’un langage
de script.
•Contrairement à Hive, Pig est basé sur un langage de haut niveau PigLatin qui permet de créer des
programmes de type MapReduce.
•Contrairement à Hive, Pig ne dispose pas d’interface web.

MSAKNI IMEN Hadoop


L’écosystème Hadoop
Caractéristiques Pig Jaql Hive BigSQL

Développé par Yahoo! IBM Facebook IBM

Langage Pig Latin Jaql HiveQL Ansi-SQL

Type de langage Flux de données Flux de données SQL SQL

Structures de données JSON, semi- Principalement Principalement


Complexes
supportées structurées structurées structurées

Schéma Optionnel Optionnel Obligatoire Obligatoire

44
L’écosystème Hadoop
Extensions
 Sqoop (Cloudera) : Intégration SGBD-R
• Sqoop permet le transfert des données entre un cluster Hadoop et des bases de données relationnelles.
• Il permet d’importer/exporter des données depuis/vers Hadoop et Hive.
• Pour la manipulation des données, Sqoop utilise en autres MapReduce.
 Apache Oozie (Yahoo) : Ordonnanceur
• Oozie est une solution de workflow (au sens scheduler d’exploitation) utilisée pour gérer et coordonner
les tâches de traitement de données à destination de Hadoop.
• Oozie s’intègre parfaitement avec l’écosystème Hadoop puisqu’il supporte les types de jobs suivant :
MapReduce ,Pig,Hive, Sqoop, etc.

MSAKNI IMEN Hadoop


L’écosystème Hadoop
Extensions --Gestion des clusters Hadoop
 Apache ZooKeeper: Clustering
•ZooKeeper est un service de coordination des services d’un cluster Hadoop.
•En particulier, le rôle de ZooKeeper est de fournir aux composants Hadoop les fonctionnalités de
distribution.
•Pour cela il centralise les éléments de configuration du cluster Hadoop, propose des services de
clusterisation et gère la synchronisation des différents éléments (événements).
•ZooKeeper est un élément indispensable au bon fonctionnement de HBase.
 Apache Ambari (HortonWorks) : Supervision
• Ambari est un projet d’incubation Apache initié par HortonWorks et destiné à la supervision et à
l’administration de clusters Hadoop.
• C’est un outil web qui propose un tableau de bord. Cela permet de visualiser rapidement l’état d’un cluster:
De la configuration du cluster et des services, De l’exécution des jobs, etc.

MSAKNI IMEN Hadoop


L’écosystème Hadoop
Extensions –Autres
Apache Flume (Cloudera)
•Flume est une solution de collecte et d’agrégation de fichiers logs, destinés à être stockés et
traités par Hadoop.
•Il a été conçu pour s’interfacer directement avec HDFS au travers d’une API native.
•Alternatives : Apache Chukwa.
Apache Mahout
•Apache Mahout est un projet de la fondation Apache visant à créer des implémentations
d’algorithmes d’apprentissage automatique et de datamining.
•Même si les principaux algorithmes d’apprentissage se basent sur MapReduce, il n’y a pas
d’obligation à utiliser Hadoop. Apache Mahout ayant été conçu pour pouvoir fonctionner sans
cette dépendance.

MSAKNI IMEN Hadoop


L’écosystème Hadoop
Extensions –Autres
Apache HCatalog (HortonWorks)
•HCatalog permet l’interopérabilité d’un cluster de données Hadoop avec des systèmes
externes.
•HCatalog est un service de management de tables et de schéma des données Hadoop :
Permet d’attaquer les données HDFS via des schémas de type tables de données en
lecture/écriture.
Permet d’opérer sur des données issues de MapReduce, Pig ou Hive.
Apache Tez (HortonWorks)
•Tez est un nouveau framework en incubation chez Apache.
•Utilisant YARN il remplace MapReduce afin de fournir des requêtes dites “temps réel”.

MSAKNI IMEN Hadoop

Vous aimerez peut-être aussi