Introduction au Big Data - Atelier Apache Spark
Cette conférence introductive présente les concepts fondamentaux du Big Data, ses caractéristiques principales, les besoins en infrastructure, ainsi que les technologies et paradigmes associés. Elle s'inscrit dans un cours plus large sur le traitement et l'analyse des données massives, avec un focus particulier sur l'atelier Apache Spark. Pourquoi s'intéresser au Big Data ?
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 and Distributed Systems · PDF · 14 pages · 2021
Afficher l'aperçu du document
Cette conférence introductive présente les concepts fondamentaux du Big Data, ses caractéristiques principales, les besoins en infrastructure, ainsi que les technologies et paradigmes associés. Elle s'inscrit dans un cours plus large sur le traitement et l'analyse des données massives, avec un focus particulier sur l'atelier Apache Spark.
Pourquoi s'intéresser au Big Data ?
Depuis toujours, l'humanité cherche à savoir ce qui s'est passé, comprendre pourquoi, et prédire ce qui arrivera. Historiquement, des méthodes comme les oracles ou l'astrologie tentaient d'apporter des réponses, mais elles 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.
Jusqu'à récemment, la collecte et l'exploitation des données étaient limitées à un petit volume jugé utile. Cependant, cette approche ne permettait pas d'atteindre les avancées espérées. L'avènement du Web 2.0 a marqué un tournant : tout un chacun peut désormais produire et partager des données, créant une mémoire collective immense. Cette explosion des données a rendu nécessaire le développement d'infrastructures capables non seulement de stocker ces données, mais aussi d'en extraire de la valeur.
Caractéristiques des données massives
Le terme "Big Data" évoque principalement le volume, mais les données massives se caractérisent par plusieurs propriétés, souvent appelées les "V" du Big Data. Parmi une multitude de V recensés, trois sont essentielles :
Volume
Le volume désigne la quantité énorme de données, pouvant atteindre l'ordre de l'exaoctet, zettaoctet voire yottaoctet. Ce volume croît de manière continue, ce qui complique sa gestion. Il est donc crucial de disposer de systèmes capables de gérer cette croissance constante.
Vélocité
La vélocité correspond à la vitesse à laquelle les données arrivent et doivent être traitées. Ce flux continu de données impose que le système soit capable de stocker et traiter ces données en temps réel, afin de fournir une représentation fidèle et récente de l'état des données. Cette exigence a conduit à la notion de "Fast Data".
Variété
La variété distingue les données massives des données classiques. Elle englobe les données structurées (bases relationnelles), semi-structurées (formats flexibles) et non structurées (texte, images, sons). En entreprise, seulement 15 % des données sont structurées, les 85 % restantes étant semi- ou non structurées. Il est donc essentiel que les systèmes Big Data puissent interpréter et exploiter ces différentes formes de données.
Outre ces trois V principaux, d'autres propriétés comme la véracité (confiance dans les données), la valeur (extraction de valeur métier), la variabilité (diversité des formats) ou la visualisation (représentation graphique) influencent les choix d'architecture et de gouvernance.
Besoins en infrastructure liés aux caractéristiques du Big Data
Les propriétés Volume, Vélocité et Variété impliquent des exigences spécifiques pour les infrastructures Big Data.
Volume et scalabilité
Face à l'augmentation constante du volume, un système centralisé basé sur une seule machine (scalabilité verticale ou scale up) atteint rapidement ses limites matérielles et financières. Une alternative est la scalabilité horizontale (scale out), qui consiste à ajouter des machines interconnectées dans un cluster. Cette approche permet une capacité quasi illimitée.
Vélocité et disponibilité
La gestion d'un flux continu de données impose une disponibilité permanente du système. Toute requête de lecture ou d'écriture doit être traitée rapidement, sans perte de données. Le système doit être constamment opérationnel pour capter toutes les données entrantes.
Variété et flexibilité
La diversité des formats et des sources de données nécessite que le système soit flexible, capable de gérer des données changeantes sans recourir à des transformations lourdes qui ralentiraient la collecte ou entraîneraient des pertes. La couche d'homogénéisation classique des systèmes traditionnels est inadaptée dans ce contexte.
Le théorème CAP et ses implications pour le Big Data
Les systèmes Big Data doivent concilier scalabilité, disponibilité et cohérence. Le théorème CAP stipule qu'un système distribué ne peut garantir simultanément que deux de ces trois propriétés :
- Consistency (C) : cohérence forte, où toutes les copies des données sont identiques en temps réel.
- Availability (A) : disponibilité, où toute requête reçoit une réponse.
- Partition tolerance (P) : tolérance aux partitions réseau, c’est-à-dire que le système continue de fonctionner malgré des coupures entre nœuds.
Assurer une cohérence forte dans un système réparti nécessite que toutes les copies soient synchronisées avant toute lecture, ce qui peut rendre les données indisponibles pendant la synchronisation. Cela entre en conflit avec la nécessité de disponibilité permanente.
Les systèmes Big Data privilégient donc souvent la disponibilité et la tolérance aux partitions, en adoptant une cohérence éventuelle (eventual consistency). Cette approche garantit que les données seront cohérentes après un certain délai, avec la possibilité d'ajuster dynamiquement le niveau de cohérence. Ces systèmes sont qualifiés de BASE :
- Basically Available : système disponible en permanence.
- Soft-state : l'état du système peut évoluer même sans nouvelles entrées, du fait de la cohérence éventuelle.
- Eventual consistency : cohérence atteinte à terme.
Principes fondamentaux du Big Data
Plusieurs principes, parfois en contradiction avec les pratiques classiques, guident la conception des systèmes Big Data :
Stocker d'abord, réfléchir ensuite
La vélocité impose parfois de stocker les données brutes (raw data) sans nettoyage préalable, afin d'éviter toute perte. Ces données ne sont pas directement exploitables mais peuvent être traitées ultérieurement.
Absolument toutes les données sont importantes
Il est préférable de conserver un maximum de données, même celles qui ne semblent pas immédiatement utiles, car elles peuvent révéler un potentiel métier ou concurrentiel à long terme.
Ce sont les données qui pilotent le traitement
Contrairement aux systèmes classiques où les besoins métier définissent la structure des données, en Big Data, on collecte d'abord toutes les données disponibles, puis on applique des traitements d'exploration pour en extraire de la valeur.
Co-localisation des données et du traitement
Pour éviter de déplacer de gros volumes de données sur le réseau, le traitement est déplacé vers les données elles-mêmes, ce qui permet un traitement plus rapide et une meilleure disponibilité.
La redondance, c'est bien
Contrairement aux bases relationnelles où la redondance est évitée pour des raisons d'espace et de cohérence, en Big Data, la redondance est tolérée voire encouragée pour assurer la disponibilité et la tolérance aux pannes. Les données sont répliquées sur plusieurs nœuds du cluster.
Vive le polyglottisme !
Les systèmes Big Data adoptent le polyglottisme :
- Polyglot Programming : utilisation de plusieurs langages et paradigmes de programmation adaptés à différents besoins.
- Polyglot Persistence : usage de plusieurs types de systèmes de stockage (relationnels, NoSQL, fichiers, etc.) dans une même application.
Technologies et paradigmes du Big Data
Les opérations principales sur les systèmes Big Data sont :
Ingestion des données
Phase de collecte et d'importation des données, qui peut se faire en temps réel (données émises et traitées immédiatement) ou par lots (importation à intervalles réguliers).
Exemples de technologies : Apache Kafka, Amazon Kinesis, Apache Flume, Sqoop.
Stockage des données
Les systèmes de stockage adaptés au Big Data sont souvent des systèmes de fichiers distribués (Hadoop HDFS, Google GFS) ou des bases 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. Adapté aux analyses globales périodiques, mais avec une latence élevée. Exemples : Hadoop mapreduce-6e20911580">MapReduce, Spark Batch.
- Traitement en streaming (Stream Processing) : traitement des données en transit, au fur et à mesure de leur arrivée. Permet une mise à jour continue des résultats. Exemples : Apache Flink, Apache Storm.
- Traitement par micro-lot (Micro-Batch Processing) : collecte de petites portions de données pour un traitement plus fréquent que le batch classique, avec une latence réduite. Exemples : Spark Streaming, Logstash.
- Traitement interactif (Interactive Processing) : traitement immédiat des requêtes utilisateur, avec un retour rapide. Utilisé pour l'interrogation des données stockées. Exemples : Apache Drill, Cloudera Impala, Apache Zeppelin.
Points clés
- Le Big Data répond au besoin de gérer un volume croissant, une vitesse élevée et une grande variété de données.
- Les infrastructures Big Data privilégient la scalabilité horizontale, la disponibilité et la flexibilité.
- Le théorème CAP impose un compromis entre cohérence, disponibilité et tolérance aux partitions ; les systèmes Big Data optent souvent pour une cohérence éventuelle.
- Les principes du Big Data incluent le stockage préalable des données brutes, la valorisation de toutes les données, le traitement piloté par les données, la co-localisation du traitement et des données, la tolérance à la redondance et le polyglottisme.
- Les technologies Big Data couvrent l'ingestion, le stockage et plusieurs types de traitement (batch, streaming, micro-batch, interactif).
Commentaires
Aucun commentaire pour le moment. Posez la première question.