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