Académique Documents
Professionnel Documents
Culture Documents
Inbound 8189111358623730193
Inbound 8189111358623730193
Business Intelligence
&
Big Data
1
12/05/2024
Introduction
• Volume
• Quantité de données
• Variété
• Différents formats de données (structurées
20% ou non structurées 80%)
• Texte, CSV, XML, JSON, Binaires, BDR, etc…
• Vélocité
• Fréquente de l’arrivé des données
• Véracité
• Fiabilité et la crédibilité des données
collectées (sources fiable)
• Valeur
• Profit et la connaissance que l’on peut
extraire de ces données
• Transformer les données en valeur
2
12/05/2024
Introduction
3
12/05/2024
4
12/05/2024
Hadoop
• Ces dernières années, le traitement des serveurs d’application a connu une évolution
exponentielle.
• D’un autre côté, les bases de données n’ont pas synchronisé avec l’explosion des serveurs
d’application à cause de leur capacité et de leur vitesse limitées.
• Aujourd'hui, suite à la génération de très grands volumes de données par les diverses
applications existantes, Hadoop joue un rôle primordial et très attendu dans la refonte
des bases de données.
• Sur le plan des activités des grandes organismes et entreprises, Hadoop prévoit plusieurs
avantages à leur propos (directs et indirects).
• Notamment, l’utilisation de la technologie open source sur des serveurs peu hébergés dans le
cloud, qui permet aux entreprises de réduire leur coûts d’exploitation et d’intégration des
données.
• Ces nombreux avantages et cette forte intégration du système Hadoop pour régler les
problématiques des données massives font de ce framework une composante principale
des systèmes Big data pour la gestion et traitement des données.
5
12/05/2024
Hadoop
High-Availability Distributed Object-Oriented Platform
• Hadoop a été créé par Doug Cutting et fait partie des projets de la
fondation logicielle Apache depuis 2009.
• L’écosystème Hadoop est un produit de la fondation Apache basé pour sa création
sur le langage java.
• Hadoop est une plateforme « framework » de référence libre et open
source destiné aux traitements distribués des données massives de l’ordre
de plusieurs pétaoctets.
• permettant d’analyser, stocker et manipuler de très grandes quantités de données.
• Hadoop est un système de gestion de données et de traitements distribués.
• À travers ses fonctionnalités avancées et performantes, Hadoop permet de
faciliter la création d’applications distribuées ce qui fait de lui un
environnement Big Data typique.
Hadoop
High-Availability Distributed Object-Oriented Platform
• Le noyau d’Hadoop est constitué :
• d’une partie stockage consistant en un système de fichiers distribué,
extensible et portable appelé HDFS (Hadoop Distributed File System),
• et d’une partie traitement appelée MapReduce.
• Hadoop fractionne les fichiers en gros blocs et les distribue à travers
les nœuds du cluster.
• Pour traiter les données selon le modèle MapReduce, Hadoop
transfère le code à chaque nœud et chaque nœud traite les données
dont il dispose.
• Cela permet de traiter un volume important de données plus rapidement et
plus efficacement que dans une architecture super-calculateur classique.
6
12/05/2024
Hadoop
High-Availability Distributed Object-Oriented Platform
• Big Data façon Hadoop :
• Amener les codes de traitements aux données
• Transformer momentanément en noeuds de traitement les noeuds de
stockage des données traitées
• Eviter de déplacer des données (très volumineuses) … mais …
• les relire et les réécrire localement chaque fois que la RAM est pleine
• Principe :
• Diviser les données
• Les sauvegarder sur une collection de machines, appelées cluster
• Traiter les données directement là ou elles sont stockées, plutôt que de les
copier à partir d’un serveur distribué
7
12/05/2024
Avantages de Hadoop
• La plateforme Hadoop permet de vérifier les critères les plus
importants des solutions Big Data à savoir :
• La scalabilité : assurée par la performances délivrées des clusters de haut
niveau.
• Parallélisme des données: un même traitement et calcul peut être effectué
sur toutes les données.
• Performance : Hadoop délivre un support de traitement de grands volumes
de données et d’énormes data sets à travers le critère de parallélisme.
• Économie : les coûts lors de l’utilisation de Hadoop sont mieux contrôlés
grâce à l’utilisation de matériel de calcul de type standard.
8
12/05/2024
Hadoop
High-Availability Distributed Object-Oriented Platform
Écosystème de hadoop
9
12/05/2024
Écosystème de hadoop
Écosystème de hadoop
10
12/05/2024
Écosystème de hadoop
Écosystème de hadoop
11
12/05/2024
HDFS
Hadoop Distributed File System
12
12/05/2024
Fichiers systèmes
• Un fichier système définit les composantes essentielles au bon
fonctionnement d’un système d’exploitation donné.
• Ces fichiers système ont ainsi de diverses fonctionnalités et on en distingue
plusieurs types, à savoir :
• Les fichiers d’amorçage : ils sont localisés à la racine de la partition active et ont pour
rôle principal d’amorcer le système d’exploitation (les fichiers IO.SYS, MSDOS.SYS du
DOS).
• Les fichiers noyau : ces fichiers sont le cœur d’un système d’exploitation et sont
localisés généralement dans le répertoire système. Dans ce cas, ces fichiers
contiennent les commandes internes du système.
• Les fichiers configuration : Ces fichiers gèrent la configuration du matériel et logiciels
installés.
• Les fichiers système les plus répandus tel que : IO, MSDOD, CONIG etc …
13
12/05/2024
HDFS
Hadoop Distributed File System
• Le système de fichiers distribués Hadoop (HDFS) est
basé sur le système de fichiers Google (GFS) et
fournit une conception conçu pour fonctionner sur
du matériel standard.
• L'implémentation de HDFS a son origine dans un
whitepaper issu du département de recherche de Google («
The Google File System », 2003).
• Il présente de nombreuses similitudes avec les
systèmes de fichiers distribués existants.
• Cependant, les différences par rapport aux autres
systèmes de fichiers distribués sont importantes.
• Il est très tolérant aux pannes et est conçu pour être
déployé sur du matériel à faible coût.
• Il fournit un accès à haut débit aux données d'application et
convient aux applications ayant de grands ensembles de
données.
HDFS
Systèmes de Fichiers Distribués Hadoop
• HDFS est un système de fichiers distribués de Hadoop destiné principalement
pour le stockage distribué des données.
• Ce composant est distribué, tolérant aux pannes, portable, scalable et également
extensible.
• HDFS fait une analogie de nombreux concepts inspirés par d’autres systèmes de
fichiers classiques à savoir ext2, FAT ou encore NTFS.
• Par ailleurs, ce système permet une forte abstraction de l’architecture physique
de stockage dans le but de manipuler le système de fichier distribué comme un
disque dur.
14
12/05/2024
HDFS
Hadoop Distributed File System
HDFS _ Architecture
Hadoop Distributed File System
15
12/05/2024
16
12/05/2024
17
12/05/2024
Architecture HDFS
18
12/05/2024
19
12/05/2024
HDFS
Hadoop Distributed File System
20
12/05/2024
HDFS
Hadoop Distributed File System
HDFS
Hadoop Distributed File System
21
12/05/2024
Architecture HDFS
22
12/05/2024
23
12/05/2024
24
12/05/2024
25
12/05/2024
26
12/05/2024
27
12/05/2024
La commande hadoop fs
• la commande permettant de stocker ou extraire des fichiers de HDFS
est l'utilitaire console hadoop, avec l'option fs.
• Il réplique globalement les commandes systèmes standard Linux, et
est très simple à utiliser:
28
12/05/2024
MapReduce
Distributed programing framework
Problématique
• Lorsqu’on dispose d’un grand volume de données à traiter, on développe
généralement des problèmes de mémoire , d’ajout des valeurs… Le temps
de traitement est aussi long et non optimale ainsi qu’on peut avoir des
réponses erronées lors d’un traitement séquentiel.
• Pour exécuter un problème large de manière distribué, il faut pouvoir
découper le problème en plusieurs problèmes de taille réduite à exécuter
sur chaque machine du cluster (stratégie algorithmique dite du divide and
conquer / diviser pour régner).
• ● De multiples approches existent et ont existé pour cette division d'un problème en
plusieurs « sous-tâches ».
• Afin de remédier à ces problèmes, la solution efficace et rapide de
traitement de ces données est le MapReduce.
29
12/05/2024
Introduction
• ● Historiquement dominés par des systèmes haute-performance
• ○ problèmes “cpu-bound”, peu de données, calculs complexes
• ○ p. ex: MPI (message passing interface), les données sont envoyées aux
agents, le calcul effectué et les résultats retournés au “coordonnateur”
• ● Afin de traiter de très grandes quantités de données, inverser la
responsabilité: déplacer l’algorithme vers les données
• ○ “data-locality”
30
12/05/2024
Introduction
• Le modèle de programmation MapReduce est l’un des principaux
composants du framework Hadoop.
• Il est utilisé pour accéder aux données Big Data stockées au sein du
Hadoop File System (HDFS).
• ▪ L’intérêt de MapReduce est de faciliter le traitement concurrent des
données.
• Pour parvenir à cette prouesse, les volumes massifs de données, de l’ordre
de plusieurs petabytes, sont décomposés en plusieurs parties de moindres
envergures.
• Ces morceaux de données sont traités en parallèle, sur les serveurs
Hadoop.
• Après le traitement, les données en provenance des multiples serveurs
sont agrégées pour renvoyer un résultat consolidé à l’application.
31
12/05/2024
32
12/05/2024
33
12/05/2024
Algorithmes distribués
MapReduce _ Exemple
• Soient les 4 n-uplets fictifs suivants :
• Calculer le prix maximal, moyen ou total?
• FonctionM est une fonction de correspondance
• extrait le prix d’une voiture,
34
12/05/2024
Algorithmes distribués
MapReduce _ Exemple
Le but est de recueillir une information synthétique à partir d’un jeu de données.
Algorithmes distribués
MapReduce _ Exemple • Parallélisation de Reduce
• Parallélisation de Map • La fonction reduce se parallélise partiellement,
• La fonction map est par nature parallélisable, sous une forme hiérarchique,
car les calculs sont indépendants. • Exemple :
• Exemple, pour 4 éléments à traiter : • inter1 et 2 = FonctionR(valeur1, valeur2)
• inter3 et 4 = FonctionR(valeur3, valeur4)
• valeur1 = FonctionM(element1)
• resultat = FonctionR(inter1 et 2, inter3 et 4)
• valeur2 = FonctionM(element2)
• valeur3 = FonctionM(element3) • Seuls les deux premiers calculs peuvent être
• valeur4 = FonctionM(element4) faits simultanément. Le 3e doit attendre. S’il y
• Les quatre calculs peuvent se faire avait davantage de valeurs, on procéderait
simultanément, par exemple sur 4 machines ainsi:
• 1. calcul parallèle de la FonctionR sur toutes les paires
différentes, à condition que les données y de valeurs issues du map
soient copiées. • 2. calcul parallèle de la FonctionR sur toutes les paires
de valeurs intermédiaires issues de la phase
précédente.
• 3. et ainsi de suite, jusqu’à ce qu’il ne reste qu’une
seule valeur.
35
12/05/2024
Algorithmes distribués
MapReduce _ Exemple
La fonction map
• Les données d’input sont décomposées en blocs de moindre envergure.
• Chacun de ces blocs est assigné à un » mapper » pour le traitement.
• Prenons l’exemple d’un fichier contenant 100 enregistrements à traiter.
• Il est possible d’utiliser 100 mappers simultanément pour traiter chaque
enregistrement séparément.
• Toutefois, on peut aussi confier plusieurs enregistrements à chaque mapper.
• En réalité, le framework Hadoop se charge de décider automatiquement
combien de mappers utiliser.
• Ce choix dépend de la taille des données à traiter et des blocs de mémoire
disponibles sur chaque serveur.
• La fonction Map reçoit l’input à partir du disque sous forme de paires «
clé/valeur » . Ces paires sont traitées, et un autre ensemble de clé/valeur
intermédiaire est produit.
36
12/05/2024
La fonction reduce
• ▪ Après que tous les mappers aient terminé leurs tâches de traitement, le
framework mélange et organise les résultats.
• Il les transmet ensuite aux « reducers » .
• Précisons qu’un reducer ne peut démarrer si un mapper est encore actif.
• La fonction Reduce reçoit aussi les inputs sous forme de paires clé/valeur.
Toutes les valeurs produites par map ayant la même clé sont assignées à un
reducer unique. Celui-ci se charge d’agréger les valeurs pour cette clé.
• Reduce produit ensuite un ouput final, toujours sous forme de paie clé/valeur.
• Toutefois, le type de clés et de valeurs varie selon les cas d’usage. Tous les
inputs et outputs sont stockés dans le HDFS.
• Précisons que la fonction map est impérative pour filtrer et trier les données
initiales. En revanche, la fonction reduce est optionnelle.
37
12/05/2024
38
12/05/2024
MapReduce – Exemple
Compter les occurrences des mots d'une collection de documents
• ● Entrée : < nom, contenu >
• ● Map : pour chaque mot du contenu -> <mot, 1>
• ● Shuffle : regroupe tous les <mot, 1> pour un mot donné
• ● Reduce : <mot, nombre> -> <mot, total>
• ● Sortie : collection de <mot, occurrences>
MapReduce _ Exemple
39
12/05/2024
MapReduce _ Exemple
MapReduce – Exemple
• ● Déterminer les documents pointant vers une URL
• – Résolution inverse de liens
• ● Entrée : collection de < URL, contenu >
• ● Map : pour chaque lien du contenu -> < URL lien, URL source>
• ● Shuffle : regroupe tous les <URL lien, URL source> pour une URL
donnée
• ● Reduce : <URL lien, URL source> -> <URL lien, liste de sources>
• ● Sortie : collection de <URL, liste de sources>
40
12/05/2024
Exemple
• Une entreprise de téléphonie veut calculer la durée totale des appels téléphoniques d’un
abonné à partir d’un fichier CSV contenant tous les appels de tous les abonnés (n°
d’abonné, n° appelé, date, durée d’appel). Ce problème se traite ainsi :
• 1. En entrée, on a le fichier des appels (1 appel par ligne)
• 2. lancer une instance de la fonction Map par appel
• 3. Chaque instance de Map reçoit une paire (offset, ligne) et produit une paire (n° abonné,
durée) ou rien si c’est pas l’abonné qu’on veut. NB: l’offset ne sert à rien ici.
• 4. Envoyer toutes les paires vers une seule instance de Reduce (car il n’y a qu’une seule
clé différente)
• 5. L’instance de Reduce additionne toutes les valeurs des paires qu’elle reçoit et produit
une seule paire en sortie (n° abonné, durée totale)
41
12/05/2024
42
12/05/2024
Patrons de récapitulation
(summarization)
calcul de moyennes
43
12/05/2024
44
12/05/2024
45
12/05/2024
• Les deux premières sont des patrons (templates) paramétrées par les types
des clés et des valeurs
46
12/05/2024
47
12/05/2024
48
12/05/2024
49
12/05/2024
50
12/05/2024
Exemple
● WordCount
– dénombrement des occurrences des mots
● Les k et v des <k, v> doivent être Writable
pour être sérialisable par Hadoop
● Les clef (k) doivent être
WritableComparable pour le tri lors du
Shuffle
51
12/05/2024
Exemple – Map
● WordCount Map : génère une paire <word, 1> pour chaque mot
Exemple – Reduce
52
12/05/2024
Interface REST
● Monitoring de jobs
● Exemple :
53
12/05/2024
54
12/05/2024
55
12/05/2024
56
12/05/2024
Hadoop 1
57
12/05/2024
58
12/05/2024
59
12/05/2024
60
12/05/2024
61
12/05/2024
Hadoop versions
62
12/05/2024
63
12/05/2024
Hadoop 2
•Comparé à la version 1, le
JobTracker et les TaskTrackers
disparaissent, au profit d’un
ResourceManager et de
plusieurs NodeManager.
64
12/05/2024
65
12/05/2024
Conclusion
Merci
66