Vous êtes sur la page 1sur 100

Systèmes Distribués et Big Data

Houda BENALI
houda_benali@yahoo.fr
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

 ...

Systèmes Distribués et Big Data Houda Benali 4 4


Transformation digitale

Utilisation de toutes les technologies digitales disponibles, afin d’améliorer


les performances des entreprises, et contribuer à une élévation globale du
niveau de vie.

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
https://i.pinimg.com/originals/c7/30/32/c73032e31d6f02bfe026f1db8d3f2ae6.jpg , publié en 2016

Systèmes Distribués et Big Data Houda Benali 7 7


Les données en nombres!

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
…

Systèmes Distribués et Big Data Houda Benali 1313


Défis
 Sources multiples: sites, bases de données, téléphones, serveurs pour :
 Détecter les sentiments et réactions des clients

 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)
…

Systèmes Distribués et Big Data Houda Benali 1414


Plan

Introduction au Big Data

Système de fichiers distribué de Hadoop

MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN

Systèmes de base de données

Systèmes Distribués et Big Data Houda Benali 1515


Plan

Introduction au Big Data

Système de fichiers distribué de Hadoop

MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN

Systèmes de base de données

Systèmes Distribués et Big Data Houda Benali 1616


Big Data – Une définition
“Le Big Data (ou méga-données ou données massives) représente les collections de
données caractérisées par un volume, une vélocité et une variété si grands que leur
transformation en valeur utilisable requiert l’utilisation de technologies et de méthodes
analytiques spécifiques."

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?

Systèmes Distribués et Big Data Houda Benali 1818


Big Data – Une problématique 3V
 Variété
 Les données stockées dans les bases de données ou les entrepôts de données
obéissent à un format prédéfini

 La plupart des données existantes sont non-structurées ou semi-structurées

 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

Systèmes Distribués et Big Data Houda Benali 1919


Big Data – Une problématique 3V
 Vitesse
 Rapidité d’arrivée des données

 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é

Systèmes Distribués et Big Data Houda Benali 2020


Pourquoi le Big Data
 Augmentation exponentielle de la quantité de données non structurées
 Email, chat, blog, musique, photo, vidéo, etc.

 Augmentation de la capacité de stockage et d’analyse


 L’utilisation de plusieurs machines en parallèle devient accessible

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.

De “nouvelles” technologies et techniques d’analyse sont nécessaires

Systèmes Distribués et Big Data Houda Benali 2121


Big Data, pour quel domaine?

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

Hadoop (High-Availability Distributed Oject-Oriented Platform) :

 Framework gratuit et open source

 Ecrit en Java

MP-SSR2–ISSATM -2021/2022
 Géré par Apache

 Capable de s’attaquer à un gros volume de données de types différents

Systèmes Distribués et Big Data Houda Benali 2424


Hadoop Framework
 Le projet Hadoop consiste en deux grandes parties:
 Stockage des données : HDFS (Hadoop Distributed File System)
 Traitement des données : MapReduce / Yarn
 Principe :
 Diviser les données
 Les sauvegarder sur une collection de machines, appelées cluster

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

Systèmes Distribués et Big Data Houda Benali 2525


Hadoop Framework
En plus des briques de base Yarn
Map Reduce et HDFS, plusieurs
outils existent pour permettre:
 L’extraction et le stockage des
données de/sur HDFS
 La simplification des

MP-SSR2–ISSATM -2021/2022
opérations de traitement sur
ces données
 La gestion et coordination de
la plateforme
 Le monitoring du cluster

Systèmes Distribués et Big Data Houda Benali 2626


Les techniques et les technologies : Hadoop
 Qui utilise Hadoop

MP-SSR2–ISSATM -2021/2022
Liste complète : https://cwiki.apache.org/confluence/display/HADOOP2/PoweredBy

Systèmes Distribués et Big Data Houda Benali 2727


Hadoop-Map/Reduce

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.

… et Hadoop se chargera du reste (problématiques calcul distribué,


groupement par clef distincte entre MAP et REDUCE, etc.).

Systèmes Distribués et Big Data Houda Benali 2929


Plan

Introduction au Big Data

Système de fichiers distribué de Hadoop

MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN

Systèmes de base de données

Systèmes Distribués et Big Data Houda Benali 3030


Rappel : C’est quoi un Fichier
 Un ensemble d’informations regroupées en vue de leur utilisation et de leur
conservation
 Abstraction de la mémoire permanente : une séquence de données similaires
non interprétées
 L’organisation logique d’un fichier décrit son contenu vu par les processus utilisateur.

 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

Systèmes Distribués et Big Data Houda Benali 3131


Rappel : C’est quoi un Fichier
 Il peut être de tout type : un document textuel, un logiciel, une image...
 Chaque fichier a un ensemble d’attributs qui le décrivent
 le nom, l’extension, la date et l’heur de sa création ou de sa dernière modification,
la taille, la protection
 Le nom permet d'identifier plus facilement un fichier et de le retrouver dans une liste.

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.

Systèmes Distribués et Big Data Houda Benali 3232


Rappel : C’est quoi un répertoire
 Un répertoire (dossier ou catalogue ou directory) est une sorte de classeur dans lequel on
range divers fichiers.
 Une entité crée pour l’organisation des fichiers

 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\chapitre3.txt
 Sous Unix: /home/user1/rapport.txt.

Systèmes Distribués et Big Data Houda Benali 3333


Rappel : C’est quoi un répertoire

Structure d’un répertoire : cas de MS-DOS


(32 octets)

MP-SSR2–ISSATM -2021/2022
Structure d’un répertoire : cas d’UNIX (14
octets)

Systèmes Distribués et Big Data Houda Benali 3434


Rappel : Objectifs SGF
 Un SGF est la partie la plus visible d’un système d’exploitation qui se
charge de gérer le stockage et la manipulation de fichiers
 Stockage permanent des informations sous forme de fichiers
 Le stockage peut être effectué par un humain ou par un programme,

 Gestion des fichiers : offrir les primitives pour manipuler ces fichiers

MP-SSR2–ISSATM -2021/2022
 Le contrôle d’accès à l’information

 L’intégrité et la sécurité de l’information

 La performance

 Le partage des informations

Systèmes Distribués et Big Data Houda Benali 3535


Rappel : Objectifs SGF
 Le système de fichiers doit répondre aux problématiques suivantes :
 La désignation de fichiers (arborescence souvent).

 L’interface d’accès pour les programmes.

 La correspondance entre nom symbolique et adresse physique.

MP-SSR2–ISSATM -2021/2022
 L’intégrité des données par rapport aux pannes.

 Permettre les accès concurrents.

Systèmes Distribués et Big Data Houda Benali 3636


Rappel : Objectifs SGF

Information Information
logique physique

Nom folder Disque

MP-SSR2–ISSATM -2021/2022
Nom fichier Cylindre

Indications Piste
fichier Secteur

Ref: Cours Systèmes d’Exploitation - ENSIN6U3, Leonardo Brenner et


Jean-Luc Massat, Aix-Marseille Université

Systèmes Distribués et Big Data Houda Benali 3737


Pourquoi un SGF réparti
 Situation : différents systèmes de fichiers attachés à différents hôtes d’un
système réparti.
 Objectif : Réaliser la transparence des systèmes de fichiers à la
répartition.

SGF1 Hôte 1

MP-SSR2–ISSATM -2021/2022
Hôte 3 SGF3

SGF2 Hôte 2
Hôte 4 SGF4

Systèmes Distribués et Big Data Houda Benali 3838


Service des fichiers vs. Serveur de fichiers
 Service des fichiers (File Service) :
 Spécifie ce que le système de fichiers offre au client : Les primitives disponibles, les
paramètres nécessaires ; Les actions qui peuvent être entreprises.
 C’est l’interface pour le client, il n’y a aucune indication sur l’implémentation.

 Serveur de fichiers (File Server) :

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.

 Un système peut avoir un ou plusieurs serveurs de fichiers.

 C’est transparent pour l’utilisateur et pour le système.


 Ex : Un système distribué peut avoir deux serveurs de fichiers, un pour UNIX et un pour MS-DOS.

Systèmes Distribués et Big Data Houda Benali 3939


Le modèle de transfert de fichiers
 Deux primitives :
 Upload / Download (chargement/déchargement)
 Service défini par une opération principale: transférer un fichier (lire à distance et écrire
localement un fichier complet).
 Les accès au fichier sont réalisés ensuite sur le site client.
 Si nécessaire (après modifications) le fichier est retourné sur son site d’origine (le serveur).
 Accès à distance

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).

Systèmes Distribués et Big Data Houda Benali 4040


Système de fichiers distribué de Hadoop
 HDFS: HADOOP DISTRIBUTED FILE SYSTEM
 extensible et portable
 écrit en Java
 Permet de stocker de très gros volumes de données sur un grand nombre de
machines (nœuds) équipées de disques durs  Cluster

MP-SSR2–ISSATM -2021/2022
Systèmes Distribués et Big Data Houda Benali 4141
HDFS: Principe
 Quand un fichier mydata.txt 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.

Systèmes Distribués et Big Data Houda Benali 4949


HDFS: Fonctionnement
 Les clients du système de fichiers interrogent le NameNode pour:
 connaître la structure de l’arbre de fichiers
 découvrir où se trouvent les blocs d’un fichier
 Les clients accèdent aux données directement auprès des DataNode

MP-SSR2–ISSATM -2021/2022
https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html

Systèmes Distribués et Big Data Houda Benali 5050


HDFS: Fonctionnement
 Ecriture d’un fichier

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(),

Systèmes Distribués et Big Data Houda Benali 5353


HDFS: API
 Hadoop propose une API complète pour accéder aux fichiers de
HDFS. Elle repose sur deux classes principales :
 FileStatus
 FileSystem
 Ces deux classes ont besoin de connaître la configuration du cluster
HDFS, à l’aide de la classe Configuration.

MP-SSR2–ISSATM -2021/2022
 Les noms complets des fichiers sont représentés parla classe Path.

Systèmes Distribués et Big Data Houda Benali 5454


Plan

Introduction au Big Data

Système de fichiers distribué de Hadoop

MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN

Systèmes de base de données

Systèmes Distribués et Big Data Houda Benali 5555


Map-Reduce : Définition
 Modèle de programmation permettant de traiter des données
volumineuses de manière parallèle et distribuée

 A la base, le langage Java est utilisé, mais grâce à une caractéristique de


Hadoop appelée Hadoop Streaming, il est possible d’utiliser d’autres

MP-SSR2–ISSATM -2021/2022
langages comme Python ou Ruby

 Au lieu de parcourir le fichier séquentiellement (bcp de temps), il est


divisé en morceaux qui sont parcourus en parallèle.

Systèmes Distribués et Big Data Houda Benali 5656


Map-Reduce : Exemple explicatif
 Imaginons que vous avez plusieurs magasins que vous gérez à travers le
monde
 Objectif : Calculer le total des ventes par magasin pour l’année en cours
 Un très grand livre de comptes contenant TOUTES les ventes
 Supposons que les lignes du livres aient la forme suivante:

MP-SSR2–ISSATM -2021/2022
Date Ville Produit Prix

Systèmes Distribués et Big Data Houda Benali 5757


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

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

Systèmes Distribués et Big Data Houda Benali 5959


Map-Reduce : Exemple explicatif
 Map-Reduce : Moyen plus efficace et rapide de traiter ces données
 Au lieu d’avoir une seule personne qui parcourt le livre, si on en recrutait
plusieurs?
 Appeler un premier groupe les Mappers et un autre les Reducers

MP-SSR2–ISSATM -2021/2022
Mappers

Reducers

Systèmes Distribués et Big Data Houda Benali 6060


Map-Reduce : Exemple explicatif
 Diviser le livre en plusieurs parties, et en donner une à chaque Mapper
 Les Mappers peuvent travailler en même temps, chacun sur une partie des données

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

Systèmes Distribués et Big Data Houda Benali 6363


Map-Reduce : Exemple explicatif
 Reducers
 Chaque Reducer sera responsable d’un ensemble de magasins
 Ils collectent les fiches qui leur sont associées des différents Mappers
 Ils regroupent les petites piles d’une même ville en une seule
 Ils parcourent ensuite chaque pile par ordre alphabétique des villes (L.A avant
Miami), et font la somme de l’ensemble des enregistrements

MP-SSR2–ISSATM -2021/2022
Reducers

Systèmes Distribués et Big Data Houda Benali 6464


Map-Reduce : Fonctionnement
 Les Mappers sont de petits programmes qui commencent par traiter chacun une petite
partie des données
 Ils fonctionnent en parallèle
 Leurs sorties représentent les enregistrements intermédiaires: sous forme d’un couple (clef, valeur)

 Une étape de Mélange et Tri s’ensuit


 Mélange : Sélection des piles de fiches à partir des Mappers

MP-SSR2–ISSATM -2021/2022
 Tri : Rangement des piles par ordre au niveau de chaque
Reducer

 Chaque Reducer traite un ensemble d’enregistrements


à la fois, pour générer les résultats finaux

Systèmes Distribués et Big Data Houda Benali 6565


Map-Reduce V1 : Composants
 MapReduce v1 intègre trois composants
 API
 Pour permettre au programmeur l’écriture d’applications
MapReduce

 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

Systèmes Distribués et Big Data Houda Benali 6666


Map-Reduce V1 : Démons
 JobTracker
 Divise le travail sur les Mappers et Reducers, s’exécutant sur les différents nœuds

 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)

Systèmes Distribués et Big Data Houda Benali 6767


Map-Reduce V1 : Démons

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

Systèmes Distribués et Big Data Houda Benali 6969


Hadoop & Map-Reduce V1: Architecture générale

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).

Systèmes Distribués et Big Data Houda Benali 7171


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:
4. Pour chaque « morceau » des données d'entrée, le JobTracker envoie au TaskTracker
sélectionné le travail à effectuer (MAP/REDUCE, code Java) et les blocs de données
correspondant.

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.).

Systèmes Distribués et Big Data Houda Benali 7373


Map-Reduce V1 : TaskTraker
 Le TaskTracker dispose d'un nombre de « slots » d'exécution. A chaque « slot »
correspond une tâche exécutable (configurable).

 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).

Systèmes Distribués et Big Data Houda Benali 7575


Map-Reduce V1 : Problèmes
 Scalabilité
 Le Job Tracker s’exécute sur une seule machine, et fait plusieurs tâches (gestion de
ressources, ordonnancement et monitoring des tâches…)
 Les nombreux datanodes ne sont pas exploités
 Disponibilité
 Si le Job Tracker tombe en panne, tous les jobs doivent redémarrer
 Le nombre de map slots et de reduce slots est prédéfini

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

Systèmes Distribués et Big Data Houda Benali 7676


Map-Reduce V2 : Composants
 Sépare la gestion des ressources de celle des tâches
Map-Reduce
 Pas de notion de slots:
 les nœuds ont des ressources (CPU, mémoire..) allouées
aux applications à la demande
 Définition de nouveaux démons

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

Systèmes Distribués et Big Data Houda Benali 7777


Map-Reduce V2 : Démons
 Resource Manager (RM)
 Tourne sur le nœud master
 Ordonnanceur de ressources global
 Permet l’arbitrage des ressources entre plusieurs applications
 Node Manager (NM)
 S’exécute sur les nœuds esclaves
 Communique avec RM
 Containers
 Créés par RM à la demande

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

Systèmes Distribués et Big Data Houda Benali 7878


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 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

Introduction au Big Data

Système de fichiers distribué de Hadoop

MP-SSR2–ISSATM -2021/2022
Map-Reduce et YARN

Systèmes de base de données

Systèmes Distribués et Big Data Houda Benali 8989


Références
[1] Lilia Sfaxi, Cours Big Data, 2016
[2] Philippe Laflamme, cours Big Data et ses technologies, ETS 07/2017
[3] Brice Goglin, Réseaux rapides et stockage distribué dans les grappes de calculateurs:
propositions pour une interaction efficace, Thèse de doctorat, école doctorale de
Mathématiques et Informatique Fondamentale, 2005
[4] Benjamin Renaut, Hadoop / Big Data, MBDS, Université de Nice, 2013-2014

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.

Systèmes Distribués et Big Data Houda Benali 9191


Map-Reduce : Exemple
 Nos données d'entrée (le texte):

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.

Systèmes Distribués et Big Data Houda Benali 9292


Map-Reduce : Exemple
 Après découpage

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.

Systèmes Distribués et Big Data Houda Benali 9393


Map-Reduce : Exemple
 On doit désormais déterminer la clef à utiliser pour notre opération MAP,
et écrire le code de l'opération MAP elle-même.
 Puisqu'on s'intéresse aux occurrences des mots dans le texte, et qu'à terme
on aura après l'opération REDUCE un résultat pour chacune des clefs
distinctes, la clef qui s'impose logiquement dans notre cas est: le mot-lui
même.

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)

hh sg rr bb (hh, 1) (sg, 1) (rr,1) (bb, 1)

aa cd hh rr (aa, 1) (cd, 1) (hh,1) (rr, 1)

Systèmes Distribués et Big Data Houda Benali 9595


Map-Reduce : Exemple
 Une fois notre opération MAP effectuée (de manière distribuée), Hadoop
groupera (shuffle) tous les couples par clef commune.
 Cette opération est effectuée automatiquement par Hadoop.
 Elle est, là aussi, effectuée de manière distribuée en utilisant un algorithme de tri
distribué, de manière récursive.
 Après son exécution, on obtiendra les 6 groupes suivants:

MP-SSR2–ISSATM -2021/2022
(aa, 1) (aa, 1) (hh, 1) (hh, 1) (hh, 1)

(bb, 1) (bb, 1) (sg, 1)

(cd,1) (cd,1) (rr, 1) (rr, 1)

Systèmes Distribués et Big Data Houda Benali 9696


Map-Reduce : Exemple
 Il nous reste à créer notre opération REDUCE, qui sera appelée pour
chacun des groupes/clef distincte.

 Dans notre cas, elle va simplement consister à additionner toutes les


valeurs liées à la clef spécifiée:

MP-SSR2–ISSATM -2021/2022
TOTAL=0
POUR COUPLE dans GROUPE, FAIRE:
TOTAL=TOTAL+1
RENVOYER TOTAL

Systèmes Distribués et Big Data Houda Benali 9797


Map-Reduce : Exemple
 Une fois l'opération REDUCE effectuée, on obtiendra donc une valeur
unique pour chaque clef distincte. En l’occurrence, notre résultat sera:

hh :3
bb :2
cd :2

MP-SSR2–ISSATM -2021/2022
aa :2
rr :2
sg :1

Systèmes Distribués et Big Data Houda Benali 9898


Map-Reduce : Exemple
 Remarque :
 L’exemple est évidemment trivial, et son exécution aurait été instantanée même sur
une machine unique

 Mais ! on pourrait utiliser les mêmes implémentations de MAP et REDUCE sur


l'intégralité des textes d'une bibliothèque, et obtenir ainsi un bon échantillon des

MP-SSR2–ISSATM -2021/2022
mots les plus utilisés dans la langue correspondante.

Systèmes Distribués et Big Data Houda Benali 9999

Vous aimerez peut-être aussi