0% ont trouvé ce document utile (0 vote)
661 vues117 pages

Cours Big Data - LISI3

Transféré par

Karim Ammani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
661 vues117 pages

Cours Big Data - LISI3

Transféré par

Karim Ammani
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Institut Supérieur des Sciences Appliquées et Technologie à Gafsa

Cours : Big Data


Enseignante : Safa Brahmia

Niveau : 3ème LISI


Objectifs de cours

• Présenter aux étudiants les concepts fondamentaux de Big Data


• Initier les étudiants aux architectures Big Data
• Se familiariser aux nouvelles notions et les principales technologies de
stockage et de traitement de données

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 2


Plan du cours

I. Généralités sur le Big Data


II.Stockage des Big Data : Les bases de données NoSQL
III.Traitement de Big Data
IV.Références bibliographiques

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 3


I. Généralités sur le Big Data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 4


I. Généralités sur le Big Data

1. Définition de Big Data


2. Les Vs de Big Data
3. Les problèmes de Big Data
4. Les caractéristiques auxquelles doivent obéir les nouvelles
technologies de Big Data
5. Technologies liées au Big Data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 5


Définition de Big Data
• Terme relativement nouveau
• Apparu avec l’émergence des nouvelles sociétés offrant des services
liés à l’internet, comme Google, Facebook, Amazon et YouTube
• Tout ensemble de données qui ne peut pas être traité par les outils et
les SGBD traditionnels
• Référence à de grands volumes de données en croissance, comprenant
des formats hétérogènes : données structurées, données non structurées
et données semi-structurées

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 6


Les Vs de Big Data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 7


Les Vs de Big Data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 8


Les Vs de Big Data

Khan et al., 2019 : 51 V de Big Data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 9


Les Vs de Big Data
• La définition originale de big data spécifie trois dimensions : Volume,
Vélocité et Variété

Volume Vélocité Variété

grandes quantités la rapidité avec la diversité des


de données laquelle les données types de données
générées et sont générées et générées et
traitées traitées traitées
V V V

Les 3V du Big
Data
Safa BRAHMIA - Cours Big Data LISI3 ISSATG 10
Les Vs de Big Data
Volume
• Croissance sans cesse de données à gérer de tout type, souvent en
téraoctets voir en pétaoctets

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 11


Les Vs de Big Data
Variété
• Traitement de données sous forme structurée (BD structurée, etc.) et
non structurée (textes, sons, images, vidéos, données de capteurs,
fichiers journaux, médias sociaux ,…) qui doivent faire l’objet d’une
analyse collective,
• Diversité de données

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 12


Les Vs de Big Data
Vélocité
• Utilisation des données en temps réels (détection des fraudes,
analyse des données etc.)
• La technologie nous permet d’analyser les données pendant
qu’elles sont générées, sans jamais mettre en BD
• Streaming data : des centaines par seconde
• 100 capteurs dans chaque voiture moderne, pour la surveillance

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 13


Problèmes de Big Data
Problèmes
• fausses corrélations
• difficultés à évaluer les modèles
• estimation et tests
• pas de contrôle sur la production des données
• temps d'analyse long (qualité des données)
• outils classiques ne savent pas traiter les grands Volumes (modèles de
traitement et de stockage, SGBDs, RAMs, processeurs, etc.)
• récence, représentativité des données
Les méthodes de traitement de ces données (capture, stockage, recherche,
partage, analyse et visualisation) doivent être redéfinies car l’ensemble de
ces données deviennent difficilement manipulables par les outils classiques

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 14


Caractéristiques auxquelles doivent obéir les
nouvelles technologies de big data
• Distribution de données : le grand ensemble de données est divisé en
morceaux et en petits blocs et réparti sur un nombre N de machines ou
de nœuds  (Distributed File System (DFS))
• Traitement en parallèle : les données distribuées sont traitées en
parallèles. À la fin les données sont fusionnées pour obtenir le résultat
final  Map Reducede google
• Tolérance aux pannes : grâce à la technique de réplication de
données, si l’un des nœuds tombe en panne on peut obtenir la donnée à
partir d’un autre nœud
• Utilisation de matériel standard (coûts faibles)
• Flexibilité, évolutivité et scalabilité

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 15


Technologies liées au big data

• Pour stocker son index grandissant quelle solution pour Google?


1. Utilisation d’un SGBDR?
• Problème de distribution de données
• Problème du nombre d’utilisateurs
• Problème de vitesse du moteur de recherche

2. Invention d’un nouveau système propriétaire : GFS (Google File


System) en 2003

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 16


Technologies liées au big data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 17


Technologies liées au big data

Google possède aujourd’hui y’a plus de


dix millions de serveurs interconnectés
dans le monde

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 18


Technologies liées au big data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 19


II. Stockage des Big Data :
Les BD NoSQL

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 20


II. Stockage des Big Data : Les BD NoSQL

1. Limites des BD relationnelles


2. Les BD NoSQL
3. Cas du BD NoSQL : MongoDB

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 21


Limites des BD relationnelles
Les bases de données relationnelles
• Les BD relationnelles
• Relation : table 2D qui a les caractéristiques suivantes :
 Nom de la table
 Attributs
 Lignes

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 22


Limites des BD relationnelles
Les bases de données relationnelles
• Modèle entité/relation
 Modèle de données constitué d’un ensemble de tables
 Chaque ligne d’une table est composée de colonnes
 Une colonne héberge une et une seule valeur
 Les relations sont permises par le fait qu’une colonne peut
référencer une ligne de la même table ou d’une autre table

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 23


Limites des BD relationnelles
Les bases de données relationnelles
• Un SGBD relationnel est généralement transactionnel : gestion des
transactions en respectant les propriétés ACID :
 Atomicité : tout ou rien
 Cohérence : Toute modification apportée à la base de données
doit préserver la cohérence des données existantes ; les contraintes
d’intégrité sont respectées par la transaction
 Isolation : Chaque transaction est isolée des autres. Si une
transaction est en cours et entraîne une modification des données,
une autre transaction lancée à ce moment n'a aucune visibilité sur
les modifications tant que la première transaction n'a pas validé ses
modifications
 Durabilité : Après validation de la transaction, les modifications
doivent perdurer, même en cas de défaillance du système.
Safa BRAHMIA - Cours Big Data LISI3 ISSATG 24
Limites des BD relationnelles
Les bases de données relationnelles

Langage déclaratif SQL


• Structured Query Language
• Proposé initialement par IBM en 1976
• Exploiter les BD relationnelles
• LDD : langage de description/définition de données
• LMD : langage de manipulation de données

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


25
Limites des BD relationnelles
Limites du relationnel pour le stockage des big data

• L’utilisation de la relation comme le seul concept pour la


modélisation de n’importe quelle donnée
• la scalabilité verticale : procède à l’augmentation des
performances et des capacités des ressources matérielles (CPU,
RAM, etc.) afin de faire face aux besoins d’augmentation de
volume (big data).
 très coûteuse et inefficace lorsqu’elle est adoptée pour la
gestion des big data, contrairement à la scalabilité horizontale
• difficulté de gérer des données ayant des structures
hétérogènes : « schéma avant, données après »

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


26
Limites des BD relationnelles
Limites du relationnel pour le stockage des big data

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


27
Les BD NoSQL
Historique

• 1998 : introduit pour la première fois, par Carlo Strozzi, pour désigner
son SGBD relationnel open source n’utilisant pas le langage SQL.
• Passer par la suite d’une simple appellation de BD à une désignation de
toute une catégorie de BD qui partagent les mêmes caractéristiques : être
non relationnelles et ne pas utiliser le langage SQL.
• 2009 : le terme a été réintroduit par l’ingénieur Johan Oskarsson dans
une conférence, intitulée « Open-source, distributed, non-relational
databases », pour caractériser la nouvelle génération des BD non-
relationnelles émergentes

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


28
Les BD NoSQL
Définition

• Acronyme : Not Only SQL


• Définition : Toutes les BD non relationnelles, distribuées, scalables
horizontalement, ne stockant pas les données sous forme de tables et
n’utilisant pas uniquement SQL pour leur définition et manipulation.
• Nouvelle approche de stockage des données (big data)
• Utilisation par les grands acteurs sur le Web comme Facebook, Twitter,
Amazon, et Google
• Remède aux limites des BD relationnelles
• >255 systèmes de bases de données NoSQL
• Quatre modèles de BD NoSQL : Orienté-« clé-valeur », orienté-
document, orienté-colonne, orienté-graphe
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
29
Les BD NoSQL
Définition

• Nouvelle approche de stockage/gestion des données


• Augmente l’échelle de système : grâce à la distribution
• Gestion de métadonnées complexes : sans schéma
La cible de NoSQL :
• Très gros volume de données (PetaBytes)
• Temps de réponse très court
• La cohérence n'est pas obligatoire

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


30
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté- « clé-valeur »


Idée principale : table de hachage
Modèle NoSQL le plus simple
Notion de couple « clé et valeur »
La valeur de la clé peut changer d’un enregistrement à
l’autre
Exemples : DynamoDB, Voldemort

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


31
Les BD NoSQL
Les catégories/modèles NoSQL
Modèle NoSQL orienté- « clé-valeur »

Principe du modèle NoSQL orienté- « clé-valeur »

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 32


Les BD NoSQL
Les catégories/modèles NoSQL
Modèle NoSQL orienté- « clé-valeur »
Qui utilise le stockage clé/valeur

Solution clé-valeur Utilisée par


Redis (VMWare) Vodafone, Nokia, Samsung
Memcached (Danga) Wikipédia, Flickr, Wordpress
Azure Cosmos DB (Microsoft) Orange tribes, MSN, LG, Schneider Electric
SimpleDB (Amazon)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 33


Les BD NoSQL
Les catégories/modèles NoSQL
Modèle NoSQL orienté- « clé-valeur »
Cas d’utilisation
• détection de fraude en temps réel,
• chat
• IoT
• e-commerce
• gestion de caches de sites web
• transactions rapides
• fichiers de logs de sites web
• Gestion des états de capteurs
Safa BRAHMIA - Cours Big Data LISI3 ISSATG 34
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-document


Extension du paradigme clé-valeur
La valeur est présentée sous forme d’un document
Données semi-structurées : XML et JSON
approches structurées des valeurs
Requêtes riches : manipulation de contenus de documents
 requêtes complexes sur chaque élément de document

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


35
Les BD NoSQL

Les catégories/modèles NoSQL

Modèle NoSQL orienté-document

Principe du modèle NoSQL orienté- « clé-valeur »

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 36


Les BD NoSQL
Les catégories/modèles NoSQL
Modèle NoSQL orienté-document
Cas d’utilisation
 Systèmes de gestion de contenu
• Bibliothèques en ligne
• Gestion des produits
• Dépôts de logiciels
• Métadonnées sur les collections multimédia
 Stockage des e-mails
 Gestion des historiques dans les réseaux sociaux

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 37


Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-document


Qui utilise le stockage orienté-document?

Solution orientée Utilisée par


document
MongoDB (MongoDB) ADP, Adobe, Bosch, Cisco, eBay, Electronic Arts,
Expedia, Foursquare

CouchBase (Apache, AOL, AT&T, Comcast, Disney, PayPal, Ryanair


Hadoop)
DynamoDB (Amazon) BMW, Dropcam, Duolingo, Supercell, Zynga

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 38


Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne


• Proche du modèle relationnel sauf que les données sont
organisées verticalement en colonnes et non pas en lignes
• Insertion facile d’une nouvelle colonne : schéma dynamique
• Requêtes orientées colonne : focalisation des requêtes sur une
ou plusieurs colonnes au lieu de traiter des informations inutiles
(les autres colonnes).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


39
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne


• Solution efficace pour effectuer des traitements des agrégats
(comptage, moyennes,...)
• Plus adaptée à de gros calculs analytiques
• Moins appropriée pour la lecture de données spécifiques
(comme pour les clés/valeurs)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


40
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne

SGBDR

NoSQL
orienté-
colonne
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
41
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne


Cas d’utilisation
 Statistiques sur les votes en ligne
 Recherches de produits d’une catégorie donnée (exemple
dans Ebay)
 Journalisation

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


42
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne


Qui utilise le stockage orienté-colonne?
• BigTable (Google)
• HBase (Apache, Hadoop)
• Elasticsearch (Elastic)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


43
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-colonne

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


44
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-graphe


Basé sur la théorie des graphes
Exprimer les relations entre les données d’un univers de discours
Gestion et stockage des données suivantes : les nœuds, les
relations (liens) et les propriétés liées aux nœuds et aux propriétés

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


45
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-graphe


Cas d’utilisation
 La reconnaissance de formes
• Recommandations
• Détection de fraude
 Calculs graphiques
• Chemin raccourci
• Classement
• Connectivité
 Données liées
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
46
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-graphe


Exemples
Solution Utilisée par
Neo4j eBay, Cisco, UBS, HP, TomTom, The
National Geographic Society
OrientDB (Apache) Comcast, Warner Music Group, Cisco, Sky,
United Nations, VErisign
FlockDB (Twitter) Twitter

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


47
Les BD NoSQL
Les catégories/modèles NoSQL

Modèle NoSQL orienté-graphe

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


48
Les BD NoSQL
Caractéristiques

Non-relationnelle Réplication de données

Distribution automatique
Sans-schéma

Exécution des requêtes


Propriétés BASE distribuées

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 49


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

• Les fichiers sont segmentés en blocs/fragments (64 Mo, 256 Mo…)


• Les fragments sont distribués dans le cluster
• Les données sont placées selon une technique de partitionnement
Trois techniques de partitionnement :
 HDFS : basé sur l'allocation des ressources (racks, commutateurs, centre
de données)
 Tolérance aux pannes et calculs massifs
 Clustered Index : structure arborescente (tri)
 Regroupement et dynamique des données physiques
 DHT : structure basée sur le hachage
 élasticité et autogestion
Safa BRAHMIA - Cours Big Data LISI3 ISSATG 50
Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement HDFS (Hadoop File System) :


• Basée sur l’allocation des ressources
 Système de fichiers distribué
 S'appuyer sur l'équilibrage de charge des serveurs
 Dédiée à la tolérance aux pannes
 Allocation et optimisation dynamiques

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 51


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement HDFS (Hadoop File System) :


Exemple :

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 52


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement HDFS (Hadoop File System) :


Solutions NoSQL utilisant HDFS :

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 53


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement clustered index :


 Données triées selon une clé
 Clé primaire
 Construire des fragments (256 Mo par défaut)
 Distribuer les fragments
 Répliquer les fragments
 Requêtes de « range » et « group by »
⚠ Une seule clé peut être choisie

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 54


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement clustered index :


 Exemple

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 55


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement clustered index :


 Solution utilisant la technique de clustered index

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 56


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement DHT (Distributed Hash Table) :


 Anneau de serveurs virtuels
 264 maximum
 Table de hachage unique : divisée et distribuée
 Routage
 Efficacité
 Autogestion (pas de serveur principal)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 57


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement DHT (Distributed Hash Table) :

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 58


Les BD NoSQL
Partitionnement : Stratégies de distribution de données dans NoSQL

Technique de partitionnement DHT (Distributed Hash Table) :


 Solutions utilisant DHT

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 59


Les BD NoSQL
Théorème CAP (Brewer, 2000)

 Consistance : à un moment donné, les nœuds du système


voient les mêmes données.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


60
Les BD NoSQL
Théorème CAP (Brewer, 2000)

 Disponibilité: les requêtes exécutées doivent toujours


retourner des résultats.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


61
Les BD NoSQL
Théorème CAP (Brewer, 2000)

 tolérance au partitionnement : une BD distribuée résiste


aux pannes et continue à répondre aux requêtes tant qu’il
n’y a pas une panne totale du système.

Le système
continue à
opérer

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


62
Les BD NoSQL
Théorème CAP (Brewer, 2000)

• Dans un système de stockage de données distribué, seules deux


propriétés peuvent être garanties

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


63
Les BD NoSQL
Théorème CAP (Brewer, 2000)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 64


Les BD NoSQL
Les propriétés BASE (Basically Available, Soft state, Eventual consistency)

• Basically Available (disponibilité fondamentale) : le système


garantit la disponibilité des données distribuées, même en cas
de pannes, via la technique de réplication des données.
• Soft state (état souple) : l’état du système peut changer dans le
temps même s’il n’y a pas des entrées dans la BD. Ceci est dû à
la troisième propriété (cohérence éventuelle).
• Eventual Consistency (consistance éventuelle) : le système peut
ne pas être dans un état consistant à un certain moment.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


65
Les BD NoSQL
Les propriétés BASE (Basically Available, Soft state, Eventual consistency)

• Une alternative des propriétés ACID dans les milieux distribués


• Assurer l’intégrité des données dans les milieux NoSQL.
• Garantir le théorème CAP dans les milieux distribués, plus mieux que les
propriétés ACID.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


66
Cas du BD NoSQL : MongoDB

• Logo standard :
• Site Web : https://www.mongodb.com/
• Il s’agit d’un SGBD NoSQL orienté-document ;
• Il est open source ;
• Il est schema-less ;
• il stocke les données sous format BSON (Binary JSON).
 BSON <https://bsonspec.org/> est un format binaire de JSON
et plus riche que ce dernier en types de données :
https://docs.mongodb.com/manual/reference/bson-
types/
Safa BRAHMIA - Cours Big Data LISI3 ISSATG 67
Cas du BD NoSQL : MongoDB

• Un serveur mongodb est organisé en plusieurs « databases » :


 chaque database contient des collections ;
 chaque collection contient des documents ;
 les documents d’une même collection peuvent ne pas avoir le
même schéma (i.e., la même structure).
 chaque document (BSON) contient des paires field-value (champs-
valeur);
 chaque field est une valeur de type string, placée entre guillemets "";
 chaque value est une valeur de type number, string, date, object,
array, double, boolean, Timestamp, … (liste exhaustive des types
BSON ici : https://docs.mongodb.com/manual/reference/bson-types/)
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
68
Cas du BD NoSQL : MongoDB

• Bien que MongoDB stocke les données au format BSON à la fois en


interne et sur le réseau, cela ne signifie pas que MongoDB ne peut pas
être considéré comme un SGBD JSON.
 Tout ce qui peut être représenté en JSON peut être stocké
nativement dans une BD MongoDB, et récupéré/restitué aussi en JSON.
• Bien que JSON <https://datatracker.ietf.org/doc/html/rfc8259> offre
moins de types de données (number, string, boolean, null, object, array)
que BSON, il a les avantages suivants :
- JSON est codé en UTF-8 (alors que BSON est binaire) ;
- JSON peut être lu à la fois par les machines et par les humains (alors
que BSON ne peut être lu que par les machines).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


69
Cas du BD NoSQL : MongoDB
• Chaque document possède un champ intitulé "_id" et réservé à
l’utilisation comme « clé primaire ».
• Sa valeur doit être unique
dans la collection, est
immuable (invariable) et
peut être de tout type
autre que « array ».
• Dans cet exemple (à
droite de la diapositive),
le champ "_id" stocke une
valeur de type ObjectId
qui est un type BSON
(https://docs.mongodb.com/manua
l/reference/bson-types/#std-
Safa BRAHMIA - Cours Big Data LISI3 ISSATG label-objectid).
70
Cas du BD NoSQL : MongoDB

• Correspondances entre le modèle relationnel et celui de MongoDB :

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


71
Cas du BD NoSQL : MongoDB

• Conversion d’une table en une collection de documents (MongoDB) :

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


72
Cas du BD NoSQL : MongoDB

• MongoDB offre un langage qui supporte :


 les opérations de lecture et d’écriture (CRUD : Create, Read, Update,
and Delete) ;
 l’agrégation des données (somme : $sum, moyenne : $avg, …) ;
 la recherche plein texte ;
 les requêtes géo-spatiales.
• Plus de détails sur la gestion des données NoSQL sous MongoDB peuvent
être trouvés dans la documentation en ligne de ce SGBD, à l’adresse
suivante :
https://docs.mongodb.com/

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


73
Cas du BD NoSQL : MongoDB

• Opérations de Création :
 Les opérations de création ou d’insertion permettent d’ajouter de
nouveaux documents à une collection.
 Si la collection n’existe pas, les opérations d’insertion la créent.
 MongoDB offre les deux méthodes suivantes :
• l’une pour insérer un seul document dans une collection :
db.collection.insertOne()
• l’autre pour insérer plusieurs documents dans une collection :
db.collection.insertMany()

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


74
Cas du BD NoSQL : MongoDB

• Exemples d’opérations de création :


db.entreprises.insertOne(
{ nom: "FabCuir", effectifPeronnel: 100,
adresse: {numero: 5, rue: "Liberte", ville: "Sfax", codePostal: 3000},
telephones: [74112233, 93001122] }
)
db.entreprises.insertMany( [
{ nom: "VetPAP", effectifPeronnel: 250,
adresse: {rue: "Independance", ville: "Gafsa", codePostal: 2100},
telephones: [76998877], fax: 76776655 },
{ nom: "SmartMI", effectifPeronnel: 350,
adresse: {ville: "Beja", codePostal: 9000},
telephones: [77884411, 96669900] , fax: 77020301 } ] )
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
75
Cas du BD NoSQL : MongoDB
• Opération de Lecture :
 MongoDB offre la méthode db.collection.find()
pour interroger/lire les documents d’une collection.
 Exemple d’une opération de lecture :
Requête : Afficher les noms et adresses des entreprises ayant
chacune un effectif de personnel supérieur à 200 (en se limitant aux
quatre premières entreprises retournées).
db.entreprises.find( Collection
{ effectifPersonnel: { $gt: 200 } }, Filtres ou critères
{ nom: 1, adresse: 1 } d’interrogation
).limit(4) Projection (champs de
Modificateur de curseur documents à retourner)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


76
Cas du BD NoSQL : MongoDB
• Opérations de Mise à jour :
 MongoDB offre les trois méthodes suivantes pour mettre à jour un ou
plusieurs documents d’une collection :
- db.collection.updateOne()
- db.collection.updateMany()
- db.collection.replaceOne()
 Exemple d’une opération de mise à jour :
db.entreprises.updateMany(
{ effectifPersonnel: { $gt: 249 } }, Collection
{ $set: { categorie: "Grande Entreprise" } } Filtre de mise à jour
) Action de mise à jour
 l’opérateur $set crée le champ si le champ n’existe pas déjà.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


77
Cas du BD NoSQL : MongoDB

• Opérations de Suppression :
 MongoDB offre les deux méthodes suivantes pour supprimer un ou
plusieurs documents d’une collection :
- db.collection.deleteOne()
- db.collection.deleteMany()
 Exemples d’opérations de suppression :
db.entreprises.deleteMany( {} )
 elle supprime tous les documents de la collection « entreprises »
db.entreprises.deleteMany( Collection
{ categorie: "Grande Entreprise" } Filtre de suppression
)
 elle supprime toutes les grande entreprises de la même collection
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
78
III. Traitement de Big Data
III. Traitement de Big Data

1. Calcul distribué
2. Présentation de Hadoop
3. Historique de Hadoop
4. Ecosystème de Hadoop
• Map Reduce
• HDFS
5. Architecture générale de Hadoop

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 80


Calcul distribué
• Les données deviennent de plus en plus volumineuses, les algorithmes de
Data Mining classiques se trouvent donc impuissants devant une telle
situation.
 La solution : Le calcul distribué
• Calcul Distribué : Désigne l'exécution d'un traitement informatique sur une
multitude de machines différentes (un cluster de machines) de manière
transparente.
• Un cluster de machines peut être défini comme un ensemble limité de
systèmes informatiques interconnectés, qui partagent des ressources de
façon transparente.
• Chacun de ces systèmes peut être considéré comme un système à part
entière : Il dispose d’un ensemble complet de ressources (Mémoire, Disques,
processeurs…)

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


81
Calcul distribué

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


82
Calcul distribué
Problématiques dans un système distribué :
• Accès et partage des ressources pour toutes les machines.
• Extensibilité : on doit pouvoir ajouter de nouvelles machines pour le
calcul si nécessaire.
• Hétérogénéité : les machines doivent pouvoir avoir différentes
architectures, l'implémentation différents langages.
• Tolérance aux pannes : une machine en panne faisant partie du cluster
ne doit pas produire d'erreur pour le calcul dans son ensemble.
• Transparence : le cluster dans son ensemble doit être utilisable comme
une seule et même machine « traditionnelle ».

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


83
Calcul distribué
 plusieurs expériences de recherches et d’expérimentation
 deux approches
• Approche 1 : Effectuer des calculs intensifs localement (recherche
scientifique, rendu 3D, etc.) ; un cluster local de machines pour accélérer
le traitement.
 solution coûteuse et complexe à mettre en œuvre.
• Approche 2 : Exploiter la démocratisation de l'informatique moderne et
la bonne volonté des utilisateurs du réseau pour créer un cluster distribué
via Internet à moindre coût.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


84
Calcul distribué
Architecture Beowulf
• Développée par la NASA
• Simulation de phénomènes physiques et l'acquisition de données
• Principe : Connecter plusieurs ordinateurs personnels (PC) entre eux pour
l'exécution de tâches distribuées sur un réseau local.
• 1ère réalisation concrète : 16 PCs ; deux interfaces Ethernet à 10Mbps,
disques durs de 250Mo ; SE : GNU/Linux
• Cluster Beowulf : machine maître qui distribue les tâches entre un
ensemble de machines esclaves.
• Obtenir un système de calcul distribué à hautes performances à partir
d'un matériel peu couteux.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


85
Calcul distribué
Supercalculateur Blue Gene :
• Architecture développée en 1999 par IBM
• Développé en collaboration avec le laboratoire national Lawrence
Livermore, en Californie
• Destiné à aider les biologistes dans le domaines de génétique
• L’ architecture de Blue Gene est construite pour le calcul distribué à
grande échelle, localement et ne passant pas par Internet
• Connecte 131072 CPUs et 32 tera-octets de RAM
• Contrôle centralisé pour assurer l'exécution de tâches distribuées.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 86


Calcul distribué
• Les solutions étaient :
• (-) Des super calculateurs « classiques » comme Blue Gene : très onéreux,
souvent trop puissants par rapport aux besoins requis, réservés aux
grands groupes industriels.
• (-) Des solutions développées en interne : investissement initial très
conséquent,
• nécessite des compétences et une rigueur coûteuses.
• (-) Architecture Beowulf: un début de réponse, mais complexe à mettre en
oeuvre pour beaucoup d'entreprises ou petites universités, et nécessitant
là aussi un investissement initial assez conséquent

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


87
Calcul distribué
• Le but
• Framework facile à déployer et configurer au sein d'une entreprise ou
bien d’une université
• Permettre aux développeurs d'exécuter des tâches distribuées avec un
minimum de formation requise.
• Permettre la création de clusters de tailles variables et extensibles et à
tout moment
• Exécution de tâches parallélisables
• Support et suivi des tâches, de manière rapide et simple
•  Apache Hadoop

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


88
Présentation de Hadoop(1/2)
• Projet de la fondation Apache, Open Source, composants complètement
ouverts, tout le monde peut participer.
• Modèle simple pour les développeurs : il suffit de développer des
tâches map-reduce, depuis des interfaces simples accessibles via des
librairies dans des langages multiples (Java, Python, C/C++...).
• Déployable très facilement,
• S'occupe de toutes les problématiques liées au calcul distribué : accés et
partage de données, tolérence aux pannes

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


89
Présentation de Hadoop(2/2)
Qui utilise Hadoop?

• … et des centaines d'entreprises et universités à travers le monde.


De plus en plus de données produites par des systèmes
d'information. Ces données doivent toutes être analysées, corrélées, etc. et
Hadoop offre une solution idéale et facile à implémenter au problème.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 90


Historique de Hadoop (1/2)
• 2002 : Doug Cutting (directeur archive.org) et Mike Cafarella (étudiant)
développent Nutch, un moteur de recherche Open Source exploitant le
calcul distribué. L’implémentation a de multitudes de problèmes
notamment en ce qui concerne le partage et l’accès aux ressources

• 2003/2004 : le département de recherche de Google publie GFS1 (un


système de fichier distribué) et le paradigme Map/Reduce pour le calcul
distribué.

• 2004 : Doug Cutting et Mike Cafarella développent un Framework


(encore assez primitif) inspiré de Google et portent leur projet Nutch sur
ce Framework.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


91
Historique de Hadoop (2/2)

• 2006 : Doug Cutting (désormais chez Yahoo) exploite le Framework


réalisé précédemment et créé le projet Open Source qu'il nomme
Hadoop (le nom d'un jouet éléphant de son fils). Dans le temps, un cluster
hadoop peut comporter au maximum 5 à 20 machines,
• 2008 : Bien développé, Hadoop est exploité par le moteur de recherche
de Yahoo
• 2011 : Hadoop est désormais utilisé par de nombreuses autres
entreprises et des universités, le cluster Yahoo comporte 42000 machines
et des centaines de Petaoctets d'espace de stockage.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


92
Ecosystème de Hadoop
Ecosystème

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


93
MapReduce

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 94


MapReduce
Présentation

• Stratégie algorithmique dite du divide and conquer / diviser pour régner


• De multiples approches, basées sur ce paradigme, existent et ont existé
• MapReduce est un paradigme visant à généraliser les approches
existantes
• MapReduce existait déjà depuis longtemps, notamment dans les
langages fonctionnels1 (Lisp, Scheme), mais …

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


95
MapReduce
Présentation

• MapReduce définit deux opérations distinctes à effectuer sur les


données d'entrée :
• La première MAP : transforme les données reçues en une série de
couples clef/valeur. Elle va regrouper les données en les associant
à des clefs, choisies de telle sorte que les couples clef/valeur aient
un sens par rapport au problème à résoudre
• La seconde REDUCE : applique un traitement à toutes les valeurs
de chacune des clefs distinctes produite par l'opération MAP. Au
terme de l'opération REDUCE, on aura un résultat pour chacune
des clefs distinctes

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


96
MapReduce
Etapes
On distingue donc 4 étapes dans un traitement MapReduce :
• Découper (split) les données d'entrée en plusieurs fragments.
• Mapper chacun de ces fragments pour obtenir des couples (clef ;
valeur).
• Grouper (shuffle) ces couples (clef ; valeur) par clef.
• Réduire (reduce) les groupes indexés par clef en une forme finale,
avec une valeur pour chacune des clefs distinctes.
En modélisant le problème à résoudre de la sorte, on le rend
parallélisable – chacune de ces tâches à l'exception de la première
seront effectuées de manière distribuée.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


97
MapReduce
Etapes

Pour résoudre un problème via la méthodologie MapReduce


avec Hadoop, on devra donc:

•Choisir une manière de découper les données d'entrée


de telle sorte que l'opération MAP soit parallélisable.
•Définir quelle CLEF utiliser pour notre problème.
•Ecrire le programme pour l'opération MAP.
•Ecrire le programme pour l'opération REDUCE.
Hadoop se chargera du reste (problématiques calcul distribué,
groupement par clef distincte entre MAP et REDUCE, etc.).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


98
MapReduce
Exemple

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


99
HDFS
Présentation
• Hadoop Distributed File System
• Système de fichier standard distribué de Hadoop
• Stocker les données en entrée des tâches Hadoop, ainsi que les résultats
des traitements
• Les caractéristiques de HDFS:
• Il est distribué
• Il est répliqué
• Il optimise les transferts de données
• Complémentarité entre Hadoop et HDFS pour l’optimisation : le
gestionnaire des tâches de Hadoop est en communication constante avec
HDFS
Safa BRAHMIA - Cours Big Data LISI3 ISSATG
100
HDFS
Architecture de HDFS
• HDFS repose sur deux serveurs (des daemons):
• Le NameNode, qui stocke les informations relatives aux noms de
fichiers. Il y a un seul NameNode dans tout le cluster Hadoop
• Le DataNode, qui stocke les blocs de données eux-mêmes. Il y a un
DataNode pour chaque machine au sein du cluster

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


101
HDFS
Architecture de HDFS

•Par défaut, les données sont divisées en blocs de 64KB (configurable).

•HDFS est inspiré de GFS, un système de fichier distribué conçu par Google.

•L'implémentation de HDFS a son origine dans un whitepaper issu du


Département de recherche de Google (« The Google File System », 2003).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


102
HDFS
Ecriture d’un fichier sur HDFS

• Admettons qu'on souhaite stocker un fichier dont le nom est page_livre.txt


sur HDFS,
• Le fichier va être divisé en blocs de 64KB (ou autre, selon la
configuration) avant d’être présenté au NameNode,
• Le NameNode va alors indiquer qu'il doit stocker (on suppose qu'on ait ici
2 blocs) le bloc 1 sur le DataNode numéro 3, et le bloc 2 sur le DataNode
numéro 1.
• Par ailleurs, les DataNodes s'occuperont – en informant le NameNode –
de répliquer les données entre eux pour éviter toute perte de données.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


103
HDFS
Ecriture d’un fichier sur HDFS

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


104
HDFS
Lecture d’un fichier sur HDFS

• Admettons qu'on souhaite lire le fichier page_livre.txt.


• Le NameNode répondra par exemple « Il est composé de deux blocs. Le
premier est disponible sur le DataNode 3 et 2, le second sur le
DataNode 1 et 3 ».
• Les DataNodes seront contactés directement en leurs demandant de
transmettre les blocs concernés.
• En cas d'erreur/non réponse d'un des DataNode, il passe au suivant dans
la liste fournie par le NameNode.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


105
HDFS
Lecture d’un fichier sur HDFS

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


106
HDFS
Remarques sur l’architecture de HDFS
• La gestion du stockage est assurée par des daemons Hadoop – on a pas
à se soucier d'où sont stockées les données.
• Hadoop réplique lui-même les données : les fichiers sont disponibles à
tout moment sur plusieurs DataNodes, et si une machine tombe en panne,
on a toujours accès aux données grâce à la réplication.
• Si les données proviennent d'une base de données, on sera obligé avant
d'exécuter le traitement Hadoop d'extraire les données de la base via
des requêtes SQL et de les stocker sur HDFS.
• De même, pour récupérer les résultats au sein d'une base de données, on
devra extraire le ou les fichiers des résultats depuis HDFS, et les ré-
importer dans la base de données.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


107
HDFS
Inconvénients de l’architecture de HDFS
• Le NameNode est unique – on ne peut pas en avoir plusieurs. En
conséquence, si la machine hébergeant le NameNode tombe en panne, le
cluster est incapable d'accéder aux fichiers le temps que le problème soit
corrigé.
• Ce problème est partiellement mitigé dans les versions récentes (Hadoop
0.21+) de Hadoop, avec un BackupNameNode qui peut être basculé
manuellement en cas de problème.
• Une implémentation est en cours pour un basculement automatique.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


108
Architecture générale de Hadoop
• Comme pour HDFS, la gestion des tâches de Hadoop se base sur deux
serveurs (des daemons) :
• Le JobTracker, qui va directement recevoir la tâche à exécuter (un .jar
Java), ainsi que les données d'entrées (nom des fichiers stockés sur HDFS)
et le répertoire où stocker les données de sortie (toujours sur HDFS).
• Le TaskTracker, qui est en communication constante avec le JobTracker et
va recevoir les opérations simples à effectuer (MAP/REDUCE) ainsi que
les blocs de données correspondants (stockés sur HDFS).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


109
Architecture générale de Hadoop
• Comme le JobTracker est conscient de la position des données (grâce au
NameNode), il peut facilement déterminer les meilleures machines
auxquelles attribuer les sous-tâches (celles où les blocs de données
correspondants sont stockés).
• Pour effectuer un traitement Hadoop, on va donc stocker nos données
d'entrée sur HDFS, créer un répertoire où Hadoop stockera les résultats
sur HDFS, et compiler nos programmes MAP et REDUCE au sein d'un .jar
Java.
• On soumettra alors le nom des fichiers d'entrée, le nom du répertoire des
résultats, et le .jar lui-même au JobTracker : il s'occupera du reste (et
notamment de transmettre les programmes MAP et REDUCE aux serveurs
TaskTracker des machines du cluster).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


110
Architecture générale de Hadoop

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


111
Architecture générale de Hadoop
Job Tracker
1. Le client (un outil Hadoop console) va soumettre le travail à effectuer au
JobTracker
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
noeuds TaskTracker les plus appropriés

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


112
Architecture générale de Hadoop
Job Tracker
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.
5. Le JobTracker communique avec les noeuds TaskTracker en train
d'exécuter les tâches en envoyant régulièrement des heartbeat*
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 pû être
exécutée. Le JobTracker va alors décider de la conduite à adopter

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


113
Architecture générale de Hadoop
Task Tracker
• Le TaskTracker dispose d'un nombre de slots d'exécution,
• En recevant 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) en appelant l'opération correspondante
• Une fois la tâche démarrée, il enverra régulièrement au JobTracker ses
messages heartbeats
• Lorsqu'une sous-tâche est terminée, le TaskTracker envoie un message au
JobTracker pour l'informer, que la tâche se soit bien déroulée ou non.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


114
Architecture générale de Hadoop
Inconvénients de l’architecture
• De manière similaire au NameNode de HDFS, il n'y a qu'un seul
JobTracker et s'il tombe en panne, le cluster tout entier ne peut plus
effectuer de tâches
• Généralement, le JobTracker et le NameNode HDFS sont sur la même
machine (une machine plus puissante que les autres)
• Cette machine est communément appelée le noeud maître («Master Node
»),
• Les autres noeuds (contenant TaskTracker + DataNode) sont
communément appelés noeuds esclaves (« slave node »).

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


115
Architecture générale de Hadoop

Safa BRAHMIA - Cours Big Data LISI3 ISSATG


116
Références
• Une approche outillée pour la gestion de l’évolution dans le temps des bases
de données nosql orientées-documents, Safa Brahmia, Thèse de doctorat
en Informatique, FSEG de Sfax, 2021
• Cours Bases de données évoluées – Big Data, Heni Bouhamed, FSEG
Sfax, 2016
• Cours Technologies pour le Big Data, Minyar Sassi Hidri, Ecole Nationale
d’Ingénieurs de Tunis, 2016
• Rudi Bruchez, Les Bases de Données NoSQL et le Big Data : Comprendre et
mettre en oeuvre, Editions Eyrolles, Paris, France, 2015
• Sabeur Aridhi, Philippe Lacomme, & Raksmey Phan, Les Bases de Données
NoSQL et le Big Data, Ellipses, Paris, France, 2014.

Safa BRAHMIA - Cours Big Data LISI3 ISSATG 117

Vous aimerez peut-être aussi