SysDist 03
SysDist 03
Houda BENALI
houda_benali@[Link]
Institut supérieur des sciences appliquées et de technologie
de Mateur
A-U: 2021/2022
3
2
Le Web en chiffre
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 3 3
Vers une escalade des périphériques connectés
Ordinateur
Téléphone/Tablette
Montre
Lunettes
Télévision
MP-SSR2–ISSATM -2021/2022
Voiture
Maison
Electro-ménager
...
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 5 5
Les données, le nouveau pétrole
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 6 6
Les données en nombres!
MP-SSR2–ISSATM -2021/2022
[Link] , publié en 2016
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8 8
Les données en nombres!
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 9 9
Les données en nombres!
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 1010
Les données en nombres!
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 1111
Les données en nombres!
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 1212
Les données en nombres!
90% des données dans le monde ont été créées au cours des dernières
années
Sources :
Données issues de logs
Données des capteurs utilisés pour collecter les informations climatiques, de trafic
et de consommation
MP-SSR2–ISSATM -2021/2022
Messages sur les réseaux sociaux
Images numériques et vidéos publiées en ligne
Enregistrements transactionnels d’achat en ligne
Signaux GPS de téléphones mobiles
…
Détecter les conditions critiques ou potentiellement mortelles dans les hôpitaux, et à temps
pour intervenir
Prédire des modèles météorologiques pour planifier l’usage optimal des éoliennes
Prendre des décisions risquées basées sur des données transactionnelles en temps réel
MP-SSR2–ISSATM -2021/2022
Identifier les criminels et les menaces à partir de vidéos, sons et flux de données
Étudier les réactions des étudiants pendant un cour, prédire ceux qui vont réussir, d’après
les statistiques et modèles réunis au long des années (domaine Big Data in Education)
…
MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN
MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 1717
Big Data – Une problématique 3V
Volume
Les données numériques dans le monde sont de l’ordre de Zetta Octets
Le prix de stockage a diminué ces dernières années
De 100 000 € / Giga O en 1980 à 0,05 € / GO en 2015
Il existe des solutions de stockage fiables mais qui restent coûteuses telles que SAN
(Storage Area Networks) et Stockage sur le cloud (Amazon S3)
Choisir de ne stocker que les données utiles
MP-SSR2–ISSATM -2021/2022
Comment déterminer les données qui méritent d’être stockées?
Transactions? Logs? Métier? Utilisateur? Capteurs? Médicales? Sociales?
Perte de données pouvant être très utiles
Aucune donnée n’est inutile (certaines n’ont juste pas encore servi)
Comment stocker ces données à moindre coût?
Comment parcourir ces données et extraire des informations facilement et rapidement?
Actuellement on veut tout stocker => plusieurs formats et types de données : texte,
MP-SSR2–ISSATM -2021/2022
image, vidéo,…
Certaines données peuvent paraître obsolètes alors qu’elles sont utiles pour
certaines décisions
Vitesse de traitement
Les données doivent être stockées à l’arrivée, parfois même des teraoctets par jour.
Sinon, risque de perte d’informations.
MP-SSR2–ISSATM -2021/2022
Exemple
Il ne suffit pas de savoir quel article a été acheté ou réservé par un client.
Si on sait qu’un client a passé plus de 5mn à consulter un article dans une boutique d’achat en
ligne, il est utile de lui envoyer un email dès que cet article est soldé
MP-SSR2–ISSATM -2021/2022
Les technologies existantes ne sont pas conçues pour gérer ces données
Base de données relationnelles (tabulaires), mainframes, tableurs (Excel), etc.
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 2222
Les techniques et les technologies : Vue d’ensemble
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 2323
Hadoop Framework
Ecrit en Java
MP-SSR2–ISSATM -2021/2022
Géré par Apache
MP-SSR2–ISSATM -2021/2022
Traiter les données directement là où elles sont stockées, plutôt que de les copier à
partir d’un serveur distribué
Il est possible d’ajouter des machines à votre cluster, au fur et à mesure
que les données augmentent
MP-SSR2–ISSATM -2021/2022
opérations de traitement sur
ces données
La gestion et coordination de
la plateforme
Le monitoring du cluster
MP-SSR2–ISSATM -2021/2022
Liste complète : [Link]
MP-SSR2–ISSATM -2021/2022
Génération de
couples
Systèmes Distribués et Big Data (clef, valeur) Houda Benali 2828
Hadoop-Map/Reduce
Pour résoudre un problème selon le modèle de programmation
Map/Reduce avec Hadoop, on devra donc:
1. Choisir une manière de découper les données d'entrée de telle sorte que l'opération
MAP soit parallélisable.
2. Définir quelle CLEF utiliser pour notre problème.
3. Écrire le programme pour l'opération MAP.
MP-SSR2–ISSATM -2021/2022
4. Ecrire le programme pour l'opération REDUCE.
MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN
L’organisation physique d’un fichier décrit son implémentation sur le support physique.
MP-SSR2–ISSATM -2021/2022
Vu des programmes d’applications, les informations du fichier sont repérées par des
adresses logiques. Vu du système d’exploitation, ces informations ont une adresse physique
sur le support
MP-SSR2–ISSATM -2021/2022
L'extension est une suite de lettres accolées au nom. Elle permet de savoir de quel type de fichier
il s’agit et avec quel programme l’ouvrir
Certains de ces attributs sont indiqués par l’utilisateur, d’autres sont complétés par
le système d’exploitation.
Du point de vue SGF, un répertoire est un fichier qui dispose d’une structure logique : il est considéré
comme un tableau qui contient une entrée par fichier
Chaque entrée peut contenir des informations sur le fichier (attributs du fichier) et faire référence à (pointer sur)
MP-SSR2–ISSATM -2021/2022
des structures qui contiennent ces informations
Le nom complet d'un fichier est formé d’une liste des répertoires qu'il faut traverser à partir du haut de la
hiérarchie (le répertoire racine (root directory)) plus le nom_du_fichier
Exemple :
Sous MS-DOS: c:\cours\[Link]
Sous Unix: /home/user1/[Link].
MP-SSR2–ISSATM -2021/2022
Structure d’un répertoire : cas d’UNIX (14
octets)
Gestion des fichiers : offrir les primitives pour manipuler ces fichiers
MP-SSR2–ISSATM -2021/2022
Le contrôle d’accès à l’information
La performance
MP-SSR2–ISSATM -2021/2022
L’intégrité des données par rapport aux pannes.
Information Information
logique physique
MP-SSR2–ISSATM -2021/2022
Nom fichier Cylindre
Indications Piste
fichier Secteur
SGF1 Hôte 1
MP-SSR2–ISSATM -2021/2022
Hôte 3 SGF3
SGF2 Hôte 2
Hôte 4 SGF4
MP-SSR2–ISSATM -2021/2022
Un processus distant qui implante un service de fichiers.
C’est un processus qui aide à l’implémentation du système de fichiers.
MP-SSR2–ISSATM -2021/2022
Service d’exécution de primitives d’accès fichiers à distance sur le site serveur: Mode ‘Remote
Access’ (page à la demande).
Le service défini l’ensemble des opérations sur les fichiers (créer, détruire, ouvrir, fermer, lire , écrire,
modifier des attributs etc …).
Les opérations sont réalisées sur le site serveur (le système de fichier ne s’exécute que sur le site
serveur).
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4141
HDFS: Principe
Quand un fichier [Link] est enregistré dans HDFS, il est décomposé
en grands blocs (par défaut, 64 Mo dans Hadoop 1 et 128 Mo dans
Hadoop 2), chaque bloc ayant un nom unique: blk_1, blk_2…
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4242
HDFS: Principe
Un cluster HDFS est constitué de machines jouant différents rôles
exclusifs entre eux :
Maître HDFS ou NameNode : contient tous les noms des blocs de chaque fichier
comme un gros annuaire téléphonique.
DataNodes : toutes les autres machines stockent les blocs du contenu des fichiers.
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4343
HDFS: Principe
DataNode : démon sur chaque nœud du cluster
NameNode :
Démon s’exécutant sur une machine séparée
Contient des métadonnées
Permet de retrouver les nœuds qui exécutent les blocs d’un fichier
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4444
HDFS: Principe
les problèmes possibles
Panne de réseau
Panne sur un DataNode
Panne sur le NameNode
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4545
HDFS: Principe
les problèmes possibles
Si l’un des DataNodes a un problème (les données seront perdues!)
Solution : HDFS réplique chaque bloc 3 fois (par défaut)
Il choisit 3 nœuds au hasard, et place une copie du bloc dans chacun d’eux
Si le nœud est en panne, le NN le détecte, et s’occupe de répliquer encore les
blocs qui y étaient hébergés pour avoir toujours 3 copies stockées
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4646
HDFS: Principe
les problèmes possibles
Si le NameNode (NN) a un problème :
Si c’est un problème d’accès (réseau), les données sont temporairement
inaccessibles
Si le disque du NN est défaillant, les données seront perdues à jamais
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4747
HDFS: Principe
les problèmes possibles
Solution
Le NameNode sera dupliqué, non seulement sur son propre disque, mais
également quelque part sur le système de fichiers du réseau
Définition d’un autre NN (standby/Secondary namenode) pour reprendre le
travail si le NameNode actif est défaillant
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4848
HDFS: Principe
les problèmes possibles
Solution
Le NameNode est vital pour HDFS mais unique
Hadoop 2.x a introduit une nouvelle configuration appelée high availability :
2 NameNodes de secours se comportent comme des clones ;
Ils sont en état d’attente et mis à jour en permanence à l’aide des services appelés
JournalNodes ;
MP-SSR2–ISSATM -2021/2022
Les NameNodes de secours sont capables de prendre le relai instantanément en cas de
panne du NameNode ;
Le standBy NameNode fait la même chose que les NameNodes de secours ; il devient
alors inutile.
MP-SSR2–ISSATM -2021/2022
[Link]
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 5151
HDFS: Fonctionnement
Lecture d’un fichier
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 5252
HDFS: API
Hadoop propose une API complète pour accéder aux fichiers de
HDFS. Elle repose sur deux classes principales :
FileSystem
Représente l’arbre des fichiers (file system).
Permet de copier des fichiers locaux vers HDFS (et inversement), renommer,
créer et supprimer des fichiers et des dossiers.
MP-SSR2–ISSATM -2021/2022
FileStatus
Gère les informations d’un fichier ou dossier :
taille avec getLen(),
nature avec isDirectory() et isFile(),
MP-SSR2–ISSATM -2021/2022
Les noms complets des fichiers sont représentés parla classe Path.
MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN
MP-SSR2–ISSATM -2021/2022
langages comme Python ou Ruby
MP-SSR2–ISSATM -2021/2022
Date Ville Produit Prix
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 5858
Map-Reduce : Exemple explicatif
Possibilité :
Pour chaque entrée, saisir la ville et le prix de vente
Si on trouve une entrée avec une ville déjà saisie, on les regroupe en faisant la
somme des ventes
Problèmes :
Sur 1 To !
Problème de mémoire
MP-SSR2–ISSATM -2021/2022
Temps de traitement long
Le traitement séquentiel de toutes les données peut s’avérer très long
Plus on a de magasins, plus l’ajout des valeurs à la table est long
Il est possible de tomber à court de mémoire pour enregistrer cette table
Mais cela peut marcher, et le résultat sera correct
MP-SSR2–ISSATM -2021/2022
Mappers
Reducers
Mappers
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 6161
Map-Reduce : Exemple explicatif
Mappers
Pour chaque entrée, saisir la ville, et le prix des ventes et les enregistrer dans une
fiche
Rassembler les fiches du même magasin dans une même pile
Mappers
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 6262
Map-Reduce : Exemple explicatif
Reducers
Un Reducer reçoit des données comme suit :
L.A. 12.34
L.A. 99.07
L.A. 3.14
…
New York 99.77
MP-SSR2–ISSATM -2021/2022
New York 88.99
…
Reducers
MP-SSR2–ISSATM -2021/2022
Reducers
MP-SSR2–ISSATM -2021/2022
Tri : Rangement des piles par ordre au niveau de chaque
Reducer
Framework
MP-SSR2–ISSATM -2021/2022
Services permettant l’exécution des Jobs MapReduce, le
Shuffle/Sort…
Resource Management
Infrastructure pour gérer les nœuds du cluster, allouer des
ressources et ordonnancer les jobs
TaskTracker
S’exécute sur chacun des nœuds pour exécuter les vraies tâches de Map-Reduce
Choisit en général de traiter (Map ou Reduce) un bloc sur la même machine que lui
MP-SSR2–ISSATM -2021/2022
S’il est déjà occupé, la tâche revient à un autre tracker, qui utilisera le réseau (rare)
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 6868
Hadoop & Map-Reduce V1: Architecture générale
Un job Map-Reduce (ou une Application Map-Reduce) est divisé sur 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 certain nombre de slots prédéfinis :
Map Slots
Reduce Slots
Un slot est une unité d’exécution qui représente la capacité du Task Tracker à
MP-SSR2–ISSATM -2021/2022
exécuter une tâche (map ou reduce) individuellement, à un moment donné
Le Job Tracker se charge à la fois :
D’allouer les ressources (mémoire, CPU…) 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 au besoin
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 7070
Map-Reduce V1 : JobTraker
Le déroulement de l'exécution d'une tâche Hadoop suit les étapes suivantes du point
de vue du JobTracker:
1. Le client (un outil Hadoop console) va soumettre le travail à effectuer au JobTracker: une archive
java .jar implémentant les opérations Map et Reduce. Il va également soumettre le nom des fichiers
d'entrée, et l'endroit où stocker les résultats.
MP-SSR2–ISSATM -2021/2022
2. Le JobTracker communique avec le NameNode HDFS pour savoir où se trouvent les blocs
correspondant aux noms de fichiers donnés par le client.
3. Le JobTracker, à partir de ces informations, détermine quels sont les nœuds TaskTracker les plus
appropriés, c'est à dire ceux qui contiennent les données sur lesquelles travailler sur la même
machine, ou le plus proche possible (même rack/rack proche).
MP-SSR2–ISSATM -2021/2022
5. Le JobTracker communique avec les noeuds TaskTracker en train d'exécuter les tâches. Ils
envoient régulièrement un « heartbeat », un message signalant qu'ils travaillent toujours
sur la sous-tâche reçue. Si aucun heartbeat n'est reçu dans une période donnée, le
JobTracker considère la tâche comme ayant échouée et donne le même travail à effectuer
à un autre TaskTracker.
Systèmes Distribués et Big Data Houda Benali 7272
Map-Reduce V1 : JobTraker
Le déroulement de l'exécution d'une tâche Hadoop suit les étapes suivantes du point
de vue du JobTracker:
6. Si par hasard une tâche échoue (erreur java, données incorrectes, etc.), le TaskTracker va signaler au
JobTracker que la tâche n'a pas pu être exécuté. Le JobTracker va alors décider de la conduite à adopter:
redonner la sous-tâche à un autre TaskTracker, demander au même TaskTracker de ré-essayer, marquer les
données concernées comme invalides, etc. il pourra même blacklister le TaskTracker concerné comme non-
MP-SSR2–ISSATM -2021/2022
fiable dans certains cas.
7. Une fois que toutes les opérations envoyées aux TaskTracker (MAP + REDUCE) ont été effectuées et
confirmées comme effectuées par tous les nœuds, le JobTracker marque la tâche comme « effectuée ». Des
informations détaillées sont disponibles (statistiques, TaskTracker ayant posé problème, etc.).
Lorsqu'il reçoit une nouvelle tâche à effectuer (MAP, REDUCE, SHUFFLE) depuis le
JobTracker, le TaskTracker va démarrer une nouvelle instance de Java avec le fichier
.jar fourni par le JobTracker, en appelant l'opération correspondante.
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 7474
Map-Reduce V1 : TaskTraker
Une fois la tâche démarrée, il enverra régulièrement au JobTracker ses
messages heartbeats. En dehors d'informer le JobTracker qu'il est toujours
fonctionnels, ces messages indiquent également le nombre de slots disponibles
sur le TaskTracker concerné.
MP-SSR2–ISSATM -2021/2022
Lorsqu'une sous-tâche est terminée, le TaskTracker envoie un message au
JobTracker pour l'en informer (il indique évidemment le résultat au
JobTracker).
MP-SSR2–ISSATM -2021/2022
Si on a plusieurs map jobs à exécuter, et que les map slots sont pleins, les reduce
slots ne peuvent pas être utilisés, et vice-versa.
Problème d’interopérabilité
Le Job Tracker est fortement intégré au composant Map Reduce
Problème d’interopérabilité: impossible d’exécuter des applications non-MapReduce sur HDFS
MP-SSR2–ISSATM -2021/2022
La plupart des fonctionnalités du Job Tracker sont
déplacées vers le « Application Master »
Un cluster peut avoir plusieurs « Application Masters »
Supporte les applications MR et non-MR
MP-SSR2–ISSATM -2021/2022
Se voit allouer des ressources sur le nœud esclave
Application Master (AM)
Un seul par application
S’exécute sur un Container
Demande plusieurs Containers pour exécuter les tâches de
l’application
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 7979
Map-Reduce V2 :
Lancement d’une Application dans un Cluster YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8080
Map-Reduce V2 :
Lancement d’une Application dans un Cluster YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8181
Map-Reduce V2 :
Lancement d’une Application dans un Cluster YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8282
Map-Reduce V2 :
Lancement d’une Application dans un Cluster YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8383
Map-Reduce V2 :
Exécution d’un Job Map-Reduce
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8484
Map-Reduce V2 :
Exécution d’un Job Map-Reduce
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8585
Map-Reduce V2 :
Exécution d’un Job Map-Reduce
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8686
Map-Reduce V2 :
Exécution d’un Job Map-Reduce
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8787
Map-Reduce V2 :
Exécution d’un Job Map-Reduce
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 8888
Plan
MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN
MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 9090
Map-Reduce : Exemple
Imaginons qu'on nous donne un texte écrit en langue Française. On souhaite
déterminer pour un travail de recherche quels sont les mots les plus utilisés au
sein de ce texte.
Ici, nos données d'entrée sont constituées du contenu du texte.
Première étape: déterminer une manière de découper (split) les données d'entrée
MP-SSR2–ISSATM -2021/2022
pour que chacune des machines puisse travailler sur une partie du texte.
Notre problème est ici très simple – on peut par exemple décider de découper
les données d'entrée ligne par ligne. Chacune des lignes du texte sera un
fragment de nos données d'entrée.
Aa bb cd hh.
Hh sg rr bb!
Aa cd hh rr.
MP-SSR2–ISSATM -2021/2022
Pour simplifier les choses, on va avant le découpage supprimer toute
ponctuation et tous les caractères accentués. On va également passer
l'intégralité du texte en minuscules.
aa bb cd hh
hh sg rr bb
aa cd hh rr
MP-SSR2–ISSATM -2021/2022
On obtient 3 fragments depuis nos données d'entrée.
MP-SSR2–ISSATM -2021/2022
Quand à notre opération MAP, elle sera elle aussi très simple: on va
simplement parcourir le fragment qui nous est fourni et, pour chacun des
mots, générer le couple clef/valeur: (MOT ; 1). La valeur indique ici
l’occurrence pour cette clef - puisqu'on a croisé le mot une fois, on donne
la valeur « 1 ».
Systèmes Distribués et Big Data Houda Benali 9494
Map-Reduce : Exemple
Le pseudo-code du mapper est
POUR MOT dans LIGNE, FAIRE:
GENERER COUPLE (MOT; 1)
Pour chacun de nos fragments, les couples (clef; valeur) générés seront
donc:
MP-SSR2–ISSATM -2021/2022
aa bb cd hh (aa, 1) (bb, 1) (cd,1) (hh, 1)
MP-SSR2–ISSATM -2021/2022
(aa, 1) (aa, 1) (hh, 1) (hh, 1) (hh, 1)
MP-SSR2–ISSATM -2021/2022
TOTAL=0
POUR COUPLE dans GROUPE, FAIRE:
TOTAL=TOTAL+1
RENVOYER TOTAL
hh :3
bb :2
cd :2
MP-SSR2–ISSATM -2021/2022
aa :2
rr :2
sg :1
MP-SSR2–ISSATM -2021/2022
mots les plus utilisés dans la langue correspondante.