Introduction au Big Data - Atelier Apache Spark
Ce document présente une introduction complète au Big Data, destinée aux étudiants et professionnels souhaitant comprendre les enjeux, caractéristiques, infrastructures et paradigmes technologiques associés à la gestion et au traitement des données massives.
D'après le document Introduction au Big Data - Atelier Apache Spark
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.

Document source
Big Data, Data Science, Apache Spark · PDF · 14 pages · 2021
Afficher l'aperçu du document
Ce document présente une introduction complète au Big Data, destinée aux étudiants et professionnels souhaitant comprendre les enjeux, caractéristiques, infrastructures et paradigmes technologiques associés à la gestion et au traitement des données massives. Il s'appuie notamment sur les principes fondamentaux et les défis liés aux systèmes Big Data, ainsi que sur les technologies clés utilisées dans ce domaine.
Les Big Data : Pourquoi ?
Depuis toujours, l'humanité cherche à savoir ce qui s'est passé, comprendre pourquoi, et prédire ce qui arrivera. Les méthodes traditionnelles comme les oracles ou l'astrologie ne satisfont pas l'esprit scientifique, qui recherche des explications rationnelles basées sur des faits. Pour cela, le scientifique a besoin de données.
Historiquement, la collecte et l'exploitation des données ont été limitées à un petit volume jugé suffisant. Cependant, avec l'avènement du Web 2.0, un changement de paradigme s'est opéré : tout un chacun peut désormais produire des données, vraies ou fausses, qui s'accumulent dans une mémoire collective. Ce phénomène a engendré la nécessité de nouvelles infrastructures capables non seulement de stocker ces données, mais aussi d'en extraire de la valeur.
Ces infrastructures doivent gérer toute la chaîne logistique des données, de la collecte à l'affichage, ce qui dépasse les capacités des systèmes classiques, notamment les bases de données relationnelles, face aux données dites "Big Data".
Caractéristiques des Données Massives
Le terme "Big Data" ne reflète qu'une seule caractéristique, le volume, alors que plusieurs propriétés doivent être prises en compte. Ces caractéristiques, souvent appelées les "V", sont nombreuses, mais trois principales dominent :
Volume
Le volume désigne la quantité énorme de données, pouvant atteindre des ordres de grandeur tels que l'exaoctet, le zettaoctet ou le yottaoctet (jusqu'à 2^80 octets). Ce volume est en constante augmentation, ce qui complique sa gestion. Par exemple, 90 % des données mondiales ont été générées au cours des deux dernières années.
Vélocité
La vélocité correspond à la vitesse à laquelle les données arrivent dans le système. Elle est responsable directe de l'augmentation continue du volume. Les données arrivent en flux constant et doivent être stockées et traitées immédiatement pour fournir une représentation fidèle et récente. Ce besoin a conduit à la notion de "Fast Data", c'est-à-dire une analyse en temps réel.
Variété
La variété distingue les données massives des données traditionnelles. Elle inclut les données structurées (bases relationnelles), semi-structurées (avec une structure souple) et non structurées (texte, images, sons). En entreprise, seulement 15 % des données sont structurées, contre 85 % semi- ou non structurées. Il est donc crucial que les systèmes Big Data puissent interpréter et exploiter ces données diverses.
Autres V importants
- Véracité : confiance dans la qualité des données, inversement proportionnelle au volume et à la variété.
- Valeur : capacité à extraire une valeur métier à partir des données.
- Variabilité : variation des dimensions des données issues de sources disparates.
- Visualisation : aptitude à représenter les données via des outils classiques.
Infrastructure Big Data : Besoins
Les caractéristiques des Big Data impliquent des besoins spécifiques en infrastructure :
Volume et Scalabilité
Face à l'augmentation constante du volume, un système centralisé (une seule machine) ne suffit plus. La scalabilité verticale (scale up) consiste à augmenter les ressources d'une machine unique, mais elle est limitée et coûteuse, nécessitant souvent des arrêts.
La solution est la scalabilité horizontale (scale out) : ajouter des machines dans un cluster interconnecté, créant un système réparti avec une capacité quasi illimitée.
Volume ⇒ Scalabilité horizontale
Vélocité et Disponibilité
La gestion d'un flux continu de données impose que le système soit constamment disponible, capable de traiter les requêtes en temps raisonnable sans perte de données.
Vélocité ⇒ Disponibilité
Variété et Flexibilité
La variété des formats et la nature changeante des données nécessitent que le système supporte des types de données hétérogènes sans recourir à des transformations lourdes qui ralentiraient la collecte ou entraîneraient des pertes.
Variété ⇒ Flexibilité
Le Théorème CAP
Un système Big Data doit concilier scalabilité, disponibilité et flexibilité, mais qu'en est-il de la cohérence ?
La cohérence (consistency) est primordiale dans les bases relationnelles, garantissant que les données respectent toutes les contraintes d'intégrité à tout moment. Par exemple, un champ "Not Null" ne doit jamais contenir une valeur nulle, même temporairement.
Dans un système distribué, la cohérence forte impose que toutes les copies d'une donnée soient mises à jour avant toute lecture, ce qui ralentit les opérations et rend les données indisponibles pendant la synchronisation réseau.
Le théorème CAP (Consistency, Availability, Partition tolerance) stipule qu'un système réparti ne peut garantir simultanément ces trois propriétés. Il faut choisir deux d'entre elles.
Les systèmes Big Data privilégient la disponibilité et la tolérance au partitionnement, acceptant une cohérence éventuelle (eventual consistency) qui sera atteinte après un délai généralement négligeable.
Ces systèmes sont qualifiés de BASE :
- Basically Available : système toujours disponible.
- Soft-state : l'état du système peut évoluer même sans nouvelle entrée, en raison de la cohérence éventuelle.
- Eventual consistency : la cohérence est atteinte au bout d'un certain temps.
Principes de base du domaine des Big Data
Plusieurs principes fondamentaux guident la conception et l'exploitation des systèmes Big Data :
MOTTO 1 : Stocker d'abord, réfléchir ensuite
En raison de la vélocité, il est souvent impossible de nettoyer ou traiter les données avant stockage. Il faut donc accepter de stocker des données brutes ("raw data") non nettoyées, afin de ne pas perdre d'informations potentiellement utiles.
MOTTO 2 : Absolument TOUTES les données sont importantes !
Il est préférable de stocker toutes les données, même celles qui semblent inutiles, plutôt que de risquer de perdre un avantage concurrentiel en les supprimant prématurément.
MOTTO 3 : Ce sont les données qui pilotent le traitement
Contrairement aux systèmes classiques où les besoins métier dictent la structure des données, en Big Data, on collecte d'abord toutes les données, puis on explore et traite pour en extraire de la valeur. Le traitement dépend donc des données disponibles.
MOTTO 4 : Co-localisation des données et du traitement
Dans les systèmes classiques, les données et traitements sont séparés, ce qui implique des transferts coûteux. En Big Data, pour éviter ces transferts et respecter la vélocité, le traitement est déplacé vers les données, permettant un traitement plus rapide et efficace.
MOTTO 5 : La redondance, c'est bien
Contrairement aux bases relationnelles où la redondance est à éviter pour économiser l'espace et garantir la cohérence, en Big Data, la redondance est tolérée voire encouragée pour assurer la disponibilité et la tolérance aux fautes via la réplication des données sur plusieurs nœuds.
MOTTO 6 : Vive le Polyglottisme !
Les systèmes Big Data encouragent le polyglottisme :
- Polyglot Programming : utilisation de plusieurs langages de programmation adaptés à différents besoins.
- Polyglot Persistence : usage de plusieurs systèmes de stockage (relationnels, NoSQL, fichiers, etc.) dans une même application.
Technologies et Paradigmes
Les opérations sur les systèmes Big Data se répartissent en plusieurs catégories :
Ingestion des données
Phase de collecte et d'importation des données, en temps réel (données émises au moment même) ou par lots (par portions à intervalles réguliers).
Exemples de technologies : Apache Kafka, Amazon Kinesis, Apache Flume, Sqoop.
Stockage des données
Les systèmes de stockage Big Data incluent :
- Systèmes de fichiers distribués : Hadoop HDFS, Google GFS.
- Bases de données NoSQL : MongoDB, Cassandra, Redis, Neo4J.
Traitement des données
- Traitement par lot (Batch Processing) : traitement des données au repos, sur l'ensemble des données stockées, sans interaction utilisateur. Adapté aux analyses globales périodiques. Exemples : Hadoop mapreduce-6e20911580">MapReduce, Spark Batch.
- Traitement en streaming (Stream Processing) : traitement des données en transit, au fur et à mesure de leur production. Permet une mise à jour continue des applications. Exemples : Apache Flink, Apache Storm.
- Traitement par micro-lot (Micro-Batch Processing) : collecte de petites portions de données pour traitement fréquent avec faible latence. Alternative au streaming, avec meilleure visibilité sur les données traitées. Exemples : Spark Streaming, Logstash.
- Traitement interactif (Interactive Processing) : traitement immédiat d'une requête utilisateur, avec retour rapide. Utilisé pour des interactions directes avec les données stockées. Exemples : Apache Drill, Cloudera Impala, Apache Zeppelin.
Glossaire des termes clés
- Big Data : ensemble de données caractérisé par un volume, une vélocité et une variété importants, nécessitant des infrastructures spécifiques.
- Volume : quantité massive de données, souvent en croissance continue.
- Vélocité : vitesse d'arrivée et de traitement des données.
- Variété : diversité des formats et types de données (structurées, semi-structurées, non structurées).
- Scalabilité verticale (scale up) : augmentation des ressources d'une seule machine.
- Scalabilité horizontale (scale out) : ajout de machines dans un cluster pour augmenter la capacité.
- Théorème CAP : principe selon lequel un système distribué ne peut garantir simultanément cohérence, disponibilité et tolérance au partitionnement.
- BASE : acronyme pour Basically Available, Soft-state, Eventual consistency, caractérisant les systèmes Big Data.
- Ingestion : collecte et importation des données dans le système.
- Traitement par lot : traitement différé sur un ensemble complet de données.
- Traitement en streaming : traitement en temps réel des données au fur et à mesure de leur arrivée.
- Traitement par micro-lot : traitement fréquent de petites portions de données.
- Traitement interactif : traitement immédiat d'une requête utilisateur.
- Polyglot Programming : utilisation de plusieurs langages de programmation dans une même application.
- Polyglot Persistence : usage de plusieurs types de systèmes de stockage dans une même application.
Points clés à retenir
- Les Big Data se caractérisent principalement par le volume, la vélocité et la variété des données.
- Les systèmes Big Data nécessitent une scalabilité horizontale, une disponibilité continue et une flexibilité pour gérer la diversité des données.
- Le théorème CAP impose un compromis entre cohérence, disponibilité et tolérance aux partitions dans les systèmes distribués.
- Les systèmes Big Data adoptent souvent une cohérence éventuelle (BASE) plutôt qu'une cohérence forte (ACID).
- Il est essentiel de stocker d'abord toutes les données brutes, même non nettoyées, pour ne pas perdre d'informations.
- Le traitement des données doit être co-localisé avec leur stockage pour optimiser les performances.
- La redondance est acceptée voire encouragée pour garantir la disponibilité et la tolérance aux fautes.
- Le polyglottisme en programmation et en stockage permet de répondre aux besoins variés des systèmes Big Data.
- Différents paradigmes de traitement coexistent : batch, streaming, micro-batch et interactif, adaptés à différents cas d'usage.
Commentaires
Aucun commentaire pour le moment. Posez la première question.