Chapitre 2 Final FR
Chapitre 2 Final FR
Chapitre 2 Final FR
Année universitaire:
2021 – 2022
Hasna NJAH
Plan
1. Introduction
2. Outils d’analyse de Big Data
3. Hadoop vs Spark
4. Présentation de Hadoop
5. HDFS
6. MapReduce
7. YARN
8. Applications
2
Extraction des connaissances à partir des données
Rechercher les modèles et les régularités des informations parmi les données
Appliquer des transformations sur les données afin de trouver des connaissances
Utiliser les connaissances enfouies dans les données pour prendre des décisions sages
Valeur
Données SGDB
Volume
3
Outils d'analyse de Big Data
L'échelle des volumes des données générées croît à un niveau exponentiel.
Inefficacité des
Sumonter les défis systèmes de gestion
de bases de données
Stockage relationnelles
Analyse
Traitement
4
Outils d'analyse de Big Data
5
Écosystème d'analyse de Big Data
6
Écosystème d'analyse de Big Data
MapReduce : MapReduce est un paradigme informatique distribué développé
pour traiter une grande quantité de données en parallèle en divisant une
grande tâche en une carte plus petite et en réduisant les tâches orientées.
HDFS : le système de fichiers distribué Hadoop est un système de stockage et
de fichiers distribué utilisé par les applications Hadoop.
YARN : composant de gestion des ressources et de planification des tâches
dans l'écosystème Hadoop.
Spark : un cadre de traitement de données en mémoire en temps réel.
PIG/HIVE : outils de script et de requête de type SQL pour le traitement des
données et la simplification de la complexité des programmes MapReduce.
HBase, MongoDB, Elasticsearch : Exemples de quelques bases de données
NoSQL.
Mahout, Spark ML : outils pour exécuter des algorithmes d'apprentissage
automatique évolutifs de manière distribuée.
Flume, Sqoop, Logstash : Intégration de données et ingestion de données
structurées et non structurées.
Kibana : Un outil pour visualiser les données Elasticsearch. 7
L'entreprise peut acquérir un avantage concurrentiel
en adoptant rapidement l'analyse Big Data
8
Hadoop vs Spark components
Hadoop est plus efficace pour les Spark est plus efficace pour les
scenarios incluant: scenarios incluant:
12
Hadoop
MapReduce
Common
YRAN
Presentation Resource Management
of Hadoop
HDFS
Distributed File Storage
13
HDFS est un système de fichiers distribué qui gère de
grands ensembles de données s'exécutant sur un
matériel de base.
HDFS Il est utilisé pour faire évoluer un seul cluster Apache
Hadoop vers des centaines (voire des milliers) de
nœuds.
Hadoop
HDFS est l'un des composants majeurs d'Apache
Distributed Hadoop, les autres étant MapReduce et YARN.
File Il s'appuie sur un système de fichiers natif (ext3, xfs,
System etc.)
Il fonctionne mieux avec un nombre modeste de gros
fichiers
Les fichiers dans HDFS sont « écrire une fois »
HDFS est optimisé pour les lectures en continu de
fichiers volumineux.
14
Hypothèses de HDFS
Défaillance matérielle
Accès aux données en continu
Ensembles de données volumineux
Modèle de cohérence simple
« Déplacer le calcul coûte moins cher que déplacer des données »
Portabilité sur des plates-formes matérielles et logicielles hétérogènes
15
HDFS architecture
NameNode File
Creation
Mapping Replication
Master Deletion
Slave
…
Blocks
Node 1 Node 2 Node n
16
HDFS architecture
17
HDFS architecture
18
HDFS architecture
A typical deployment example:
NameNode
Master
Slave
DataNode
DataNode DataNode …
DataNode
Rare case 19
HDFS architecture
20
The File System Namespace
HDFS prend en charge une organisation de fichiers hiérarchique
traditionnelle.
La hiérarchie de l'espace de noms du système de fichiers est similaire à la
plupart des autres systèmes de fichiers existants
Stoker Déplacer
Renommer
Créer Supprimer
21
The File System Namespace
22
Réplication des données
HDFS est conçu pour stocker de manière fiable des fichiers très
volumineux sur les machines d'un grand cluster.
Il stocke chaque fichier sous la forme d'une séquence de blocs ; tous les
blocs d'un fichier, à l'exception du dernier bloc, ont la même taille.
24
Data replication
25
Robustness
L'objectif principal de HDFS est de stocker des données de manière fiable
même en présence de pannes.
Les trois types d'échec courants sont les échecs NameNode, les échecs
DataNode et les partitions réseau.
26
An example of HDFS
27
An example of HDFS
Master
Slave
30
HDFS file read operation
31
Hadoop
MapReduce
Common
YRAN
Presentation Resource Management
of Hadoop
HDFS
Distributed File Storage
32
Une méthode de tâche répartie sur plusieurs nœuds
Chaque nœud traite les données qui y sont stockées
Il se compose de deux phases créées par les
développeurs : Map et Reduce
What is Entre Map et Reduce, il y a les phases Shuffle et Sort.
MapReduce? MapReduce fournit :
Parallélisation et distribution automatique
Tolérance aux pannes
Outils d'état et de surveillance
Une abstraction propre pour les programmeurs
33
Principes de base:
les données sont stockées dans l'ensemble du cluster
les programmes sont amenés aux données, pas les
données au programme
MapReduce
Les données sont stockées sur l'ensemble du cluster
(HDFS)
l'ensemble du cluster participe au système de fichiers
les blocs d'un seul fichier sont répartis dans le cluster
un bloc donné est généralement répliqué également
pour la résilience
34
Présentation de MapReduce
35
Présentation de MapReduce
36
Algorithme
Map
Shuffle
Avant de plonger dans les aspects
techniques de l'algorithme
MapReduce, visualisons ses
principales étapes.
Reduce
Notre objectif ici consiste à
déterminer le nombre d'objets
par forme géométrique.
Red:27 Blue: 21 Green: 30 37
Algorithme
38
Algorithme
39
Algorithme
40
Algorithme
41
Algorithme
Conseils pour écrire un programme Map Reduce :
42
Inputs and Outputs
Le framework MapReduce fonctionne sur des paires <clé, valeur> notées
en anglais <key, value>
<clé, valeur>
43
Terminologie
44
Terminologie
JobTracker - Planifie les tâches et suit les tâches affectées au suivi des tâches.
TaskTracker - Suit la tâche et signale l'état à JobTracker.
Job - Un programme est une exécution d'un mappeur et d'un réducteur sur un
ensemble de données.
Task : une tâche - Une exécution d'un mappeur ou d'un réducteur sur une
tranche de données.
TaskAttempt: une tentative de tâche - Une instance particulière d'une
tentative d'exécution d'une tâche sur un SlaveNode.
45
MapReduce over HDFS
Master node
46
Slave node Slave node Slave node
MapReduce over HDFS
47
MapReduce over HDFS
48
Job execution in MapReduce framework
JobTracker TaskTracker
49
JobTracker
La tolérance aux défauts à grain fin, bien adaptée aux très gros travaux.
Les données d'entrée et de sortie sont stockées dans un système de
fichiers (distribuées et appliquées).
Toutes les données intermédiaires sont écrites sur le disque
Si un nœud tombe en panne, sa tâche est réaffectée à un autre nœud par
le nœud maître.
51
Exemple
Ci-dessous sont les données concernant la consommation électrique
d'une organisation.
Elles contiennent la consommation électrique mensuelle et la moyenne
annuelle pour différentes années.
Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1979 23 23 2 43 24 25 26 26 26 26 25 26
1980 26 27 28 28 28 30 31 31 31 30 30 30
1981 31 32 32 32 33 34 35 36 36 34 34 34
1984 39 38 39 39 39 41 42 43 40 39 38 38
1985 38 39 39 39 39 41 41 41 00 40 39 39
Si les données ci-dessus sont fournies en entrée, nous devons écrire des
applications pour les traiter et produire des résultats tels que trouver
l'année d'utilisation maximale, l'année d'utilisation minimale, etc.
52
Exemple
Pensons aux données représentant la consommation électrique de toutes
les industries à grande échelle d'un pays particulier depuis l'année 1979.
Lorsque nous écrivons des applications pour traiter de telles données en
masse,
Elles mettront beaucoup de temps à s'exécuter.
Il y aura un trafic réseau important lorsque nous déplacerons les données de
la source vers le serveur réseau et ainsi de suite.
53
Exercice
Le fichier d'entrée est divisé en 300 blocs et nous disposons de 30 clusters
Mapping.
Parmi ces réponses, lesquelles sont correctes ?
Il y aura 100 blocs qui seront donnés à chaque cluster, car dans MapReduce
les spots sont parallélisés.
Nous ne connaissons pas la répartition en nombre des blocs sur les clusters
Mapping.
Dès qu'un cluster a terminé son traitement, un autre bloc lui est alloué.
54
Exercice
Complétez le shéma suivant:
Car :1 Car :3
Car :1 Car :2
Car Back Moss Back :1
Moss:1
Back :1 Car :3
Back :2
Back :1 Back :2
Car Back Moss Lid :1
Lid Car Back car Lid Car Back car Car: 2 Lid:3
Moss Lid Lid Back :1
Lid:3 Moss :2
Lid:1
Lid:2
Moss :1
Moss Lid Lid Lid:2
Moss :1 Moss :2
Moss :1
55
Issues with MapReduce paradigm
Selon IBM, le paradigme original de MapReduce présente certains
problèmes concernant :
Problème de scalabilité
Problème d’utilisation des ressources
Prise en charge de charges de travail différentes de MapReduce
56
Issues with MapReduce paradigm
57
Hadoop
MapReduce
Common
YRAN
Presentation Resource Management
of Hadoop
HDFS
Distributed File Storage
58
YARN: Yet Another Resource Negotiator
Hadoop
YARN L'idée est d'avoir un ResourceManager (RM) global
et un ApplicationMaster (AM) par application.
59
Présentation
60
Présentation
L’ ApplicationMaster
est une bibliothèque spécifique au framework et
est chargé de négocier les ressources du ResourceManager et de travailler
avec le(s) NodeManager(s) pour exécuter et surveiller les tâches.
61
Running an application in YARN
@node123 NodeManager
@node124 NodeManager
@node125 NodeManager
@node122 ResourceManager
@node126 NodeManager
62
Running an application in YARN
@node123 NodeManager
ApplicationMaster 1
Client 1
program @node124 NodeManager
@node125 NodeManager
@node122 ResourceManager
@node126 NodeManager
63
Running an application in YARN
@node123 NodeManager
ApplicationMaster 1
Client 1
program @node124 NodeManager
App1
@node125 NodeManager
@node122 ResourceManager
App1 App1
@node126 NodeManager
64
Running an application in YARN
@node123 NodeManager
ApplicationMaster 1
Client 1
program @node124 NodeManager
App1 Launch
@node125 NodeManager
@node122 ResourceManager
App1 App1
@node126 NodeManager
65
Running an application in YARN
@node123 NodeManager
ApplicationMaster 1
Client 1 Client 2
program program @node124 NodeManager
App1
ApplicationMaster 2
@node125 NodeManager
@node122 ResourceManager
App1 App1
@node126 NodeManager
66
Running an application in YARN
@node123 NodeManager
ApplicationMaster 1
Client 1 Client 2
program program @node124 NodeManager
App1
ApplicationMaster 2
Resource request
@node125 NodeManager
@node122 ResourceManager Container
App1 App1
IDs
@node126 NodeManager
67
Running an application in YARN
@node123 NodeManager
App2
ApplicationMaster 1
Client 1 Client 2
program program @node124 NodeManager
App1
ApplicationMaster 2
Launch
@node125 NodeManager
@node122 ResourceManager
App1 App1
@node126 NodeManager
App2
68
Resource Manager
Le ResourceManager contient deux composantes principales: Scheduler
et ApplicationsManager.
69
Resource Manager
Le ResourceManager contient deux composantes principales: Scheduler
et ApplicationsManager
70
YARN en action
71
YARN en action
72
YARN and MapReduce in action
73
Caractéristiques de YARN
Scalabilité
Hébergement mutualisé
Compatibilité
Fiabilité et disponibilité
74
Caractéristiques de YARN
Scalabilité
YARN peut s'exécuter sur des clusters plus grands que MapReduce.
MapReduce atteint des goulots d'étranglement d'évolutivité dans la région
de 4 000 nœuds et 40 000 tâches, dus au fait que le JobTacker doit gérer à la
fois les travaux et les tâches.
YARN surmonte ces limitations grâce à son architecture séparée
ResourceManager / ApplicationMaster : il est conçu pour évoluer jusqu'à
10000 nœuds et 100 000 tâches.
75
Caractéristiques de YARN
Hébergement mutualisé
Utilisation plus élevée des clusters, où les ressources non utilisées par un
framework peuvent être consommées par un autre
78
Caractéristiques de YARN
Fiabilité et disponibilité
79
Hadoop
MapReduce
Common
YRAN
Présentation Resource Management
de Hadoop
HDFS
Distributed File Storage
80
Hadoop Common fait référence à la collection
d'utilitaires et de bibliothèques communs qui
prennent en charge d'autres modules Hadoop.
81
Le package Hadoop Common est considéré comme
la base/noyau du framework car il fournit des
services essentiels et des processus de base tels
que l'abstraction du système d'exploitation sous-
jacent et de son système de fichiers.
82
Apache Hive
Hive permet aux développeurs SQL d'écrire des instructions Hive Query
Language (HQL) similaires aux instructions SQL standard pour la requête
et l'analyse de données.
Au lieu de cela, vous pouvez écrire des requêtes plus simplement en HQL,
et Hive peut ensuite créer la carte et réduire les fonctions. 83
• Diagnostic et taux de
désabonnement des clients
84
Diagnostic and customer churn
85
Pay per view advertising
86
Risk modeling
87
Sentiment analysis
88
Limitations de Hadoop
89
Limitations de Hadoop
Problèmes avec les petits fichiers
90
Limitations de Hadoop
Vitesse réduite de traitement
91
Limitations de Hadoop
Latence
92
Limitations de Hadoop
Pas de traitement des données en temps réel
Apache Hadoop est destiné au traitement par lots, ce qui signifie qu'il
prend une énorme quantité de données en entrée, les traite et produit le
résultat.
Bien que le traitement par lots soit très efficace pour traiter un volume
élevé de données, en fonction de la taille des données traitées et de la
puissance de calcul du système, une sortie peut être considérablement
retardée.
Hadoop n'est pas adapté au traitement de données en temps réel.
93
Limitations de Hadoop
Pas d'itération Delta
Hadoop n'est pas aussi efficace pour le traitement itératif, car Hadoop ne
prend pas en charge le flux itératif de données (c'est-à-dire une chaîne
d'étapes dans laquelle chaque sortie de l'étape précédente est l'entrée de
l'étape suivante).
94