Cours - Introduction aux big data PDF

Document Details

UnabashedPreRaphaelites

Uploaded by UnabashedPreRaphaelites

Université Virtuelle du Burkina Faso

2023

Pegdwendé Nicolas SAWADOGO

Tags

Big Data bases de données informatique technologies

Summary

Ce document présente une introduction aux Big Data et aux architectures associées. Il aborde les concepts fondamentaux, l'historique de Big Data, et explique les 5V des Big Data (Volume, Variété, Vitesse, Véracité et Valeur). On trouve aussi des explications sur les systèmes de fichiers distribués (HDFS) et bases de données NoSQL, et plus sur la conteneurisation avec Docker.

Full Transcript

Introduction aux Big Data et architectures associées Pegdwendé Nicolas SAWADOGO Université Virtuelle du Burkina Faso Version 1.0, Dernière modification : 5 novembre 2023 C HAPITRE 1 Qu’est-ce que les Big D...

Introduction aux Big Data et architectures associées Pegdwendé Nicolas SAWADOGO Université Virtuelle du Burkina Faso Version 1.0, Dernière modification : 5 novembre 2023 C HAPITRE 1 Qu’est-ce que les Big Data ? 1.1 Définition et historique Definition 1 Les Big Data se réfèrent à des ensembles de données extrêmement vastes et com- plexes qui sont si volumineux qu’ils dépassent la capacité des logiciels tradition- nels de base de données et des méthodes de traitement de données à les capturer, les gérer et les analyser efficacement. 1.2 Historique Historiquement, les Big Data proviennent de l’accumulation progressive des informations numériques et de la capacité croissante des ordinateurs à stocker et traiter ces données. Au fur et à mesure que les technologies ont évolué, de la puissance de calcul accrue aux mé- thodes avancées de traitement de données comme le machine learning, les Big Data sont devenues non seulement un enjeu pour la gestion informatique, mais aussi un moteur de transformation dans presque tous les domaines d’affaires, de la science, et de l’administra- tion publique. 1.3 Les 5V des Big Data 1. Volume : Le terme "Big Data" implique un grand volume de données. Cela peut concer- ner des téraoctets ou même des pétaoctets de données. Par exemple, les données gé- nérées par les réseaux sociaux, les capteurs connectés ou les transactions en ligne re- présentent souvent un volume massif d’informations. 2. Variété : Les Big Data proviennent de diverses sources et sont disponibles dans diffé- 2 CHAPITRE 1. QU’EST-CE QUE LES BIG DATA ? rents formats. Cela peut inclure des données structurées, telles que les bases de don- nées SQL, des données semi-structurées, comme les fichiers CSV, ou des données non structurées, comme les vidéos, les photos, les e-mails, les documents PDF et les pu- blications sur les réseaux sociaux. 3. Vitesse : La vitesse fait référence à la rapidité avec laquelle les données sont générées et doivent être traitées pour répondre aux besoins. Avec l’émergence de l’Internet des Objets (IoT), les données sont produites en temps réel ou presque. 4. Véracité : Cela concerne la fiabilité des données. Dans l’univers des Big Data, il est crucial de s’assurer que les informations sont exactes et fiables pour les analyses. 5. Valeur : C’est la capacité à transformer les données en valeur. Il ne suffit pas d’avoir de vastes quantités de données ; il faut également que ces données conduisent à une valeur ajoutée pour l’entreprise, que ce soit sous forme d’informations, de prises de décision ou d’amélioration de l’expérience client. 3 C HAPITRE 2 Infrastructures de Stockage et de Gestion des Données 2.1 Systèmes de fichiers distribués : HDFS Definition 2 Le Hadoop Distributed File System (HDFS) est un système de fichiers distribué conçu pour fonctionner sur du matériel informatique standard. Développé dans le cadre du projet Apache Hadoop, il a pour but de stocker de très grands fichiers avec des schémas d’accès en streaming à haute bande passante. HDFS est particu- lièrement adapté pour accueillir des volumes massifs de données non structurées et permettre le traitement analytique à grande échelle. Fonctionnalités de HDFS — Répartition des données : HDFS stocke chaque fichier en le découpant en blocs de données (par défaut, chaque bloc fait 128 MB ou 256 MB, mais cela peut être confi- guré), et en distribuant ces blocs sur plusieurs nœuds dans un cluster. Cela permet de traiter les données en parallèle, optimisant ainsi la performance. — Tolérance aux pannes : Il réplique chaque bloc de données sur plusieurs nœuds du cluster (le facteur de réplication par défaut est trois) pour assurer une haute disponi- bilité et une résistance aux défaillances. — Scalabilité : HDFS est conçu pour fonctionner sur du matériel informatique standard et pour être facilement extensible, permettant ainsi à un système de croître simple- ment en ajoutant des nœuds au cluster. 4 CHAPITRE 2. INFRASTRUCTURES DE STOCKAGE ET DE GESTION DES DONNÉES 2.2 Bases de données NoSQL Definition 3 Les bases de données NoSQL (Not Only SQL) représentent une large classe de sys- tèmes de gestion de bases de données qui diffèrent des bases de données rela- tionnelles classiques dans la façon dont elles stockent et gèrent les données. Elles ont été conçues pour surmonter les limitations des bases de données SQL, no- tamment en termes de scalabilité, de performance et de modélisation des don- nées. Les bases de données NoSQL sont particulièrement utiles pour gérer de très grands volumes de données et des données qui n’ont pas de schéma fixe ou struc- turé. Quelques fonctionnalités proposées par les SGBD NoSQL — Flexibilité du schéma : Les bases de données NoSQL permettent de stocker et de trai- ter des données sans nécessiter de schéma prédéfini. Cela rend facile l’ajout de nou- veaux champs ou types de données sans perturber les données existantes. — Scalabilité horizontale : Contrairement aux bases de données relationnelles qui sont conçues pour la scalabilité verticale (augmenter la puissance d’un seul serveur), les 5 Introduction aux Big Data et architectures associées- Pegdwendé Nicolas SAWADOGO systèmes NoSQL sont souvent conçus pour la scalabilité horizontale, c’est-à-dire pour fonctionner sur des clusters de machines. — Modèles de données diversifiés : Les bases de données NoSQL supportent une variété de modèles de données, y compris les documents, les graphes, les paires clé-valeur et les colonnes larges, ce qui les rend adaptées à différents types d’applications. — Haute disponibilité et tolérance aux pannes : Beaucoup de systèmes NoSQL offrent des fonctionnalités de réplication et de distribution des données pour assurer une meilleure disponibilité et résilience. 6 C HAPITRE 3 Traitement des Données à Grande Échelle Le traitement parallèle et le traitement distribué sont deux concepts clés dans le domaine du calcul haute performance et du Big Data. Ils représentent des méthodes pour exécuter des opérations de calcul ou des traitements de données de manière plus efficace en utilisant plusieurs processeurs ou ordinateurs. Voici une explication de ces deux notions : 3.1 Introduction au traitement parallèle Definition 4 Le traitement parallèle fait référence à la capacité de diviser une tâche de calcul en sous-tâches plus petites qui peuvent être exécutées simultanément sur différents processeurs au sein d’une même unité centrale de traitement (CPU) ou sur plu- sieurs cœurs au sein d’un processeur multicœur. L’objectif est de réduire le temps total nécessaire pour compléter la tâche initiale en effectuant plusieurs opéra- tions en même temps. Caractéristiques du traitement parallèle : — Multiplicité des processeurs ou cœurs : Utilisation de plusieurs unités de traitement pour effectuer des tâches en parallèle. — Mémoire partagée : Dans les systèmes à mémoire partagée, tous les processeurs ac- cèdent à la même mémoire globale, ce qui facilite le partage des données entre les processus. — Amélioration de la performance : Réduction significative du temps de calcul grâce à la division et à la conquête. Dépendance des tâches : Certaines tâches parallèles peuvent être dépendantes les unes des autres et nécessiter une synchronisation. 7 Introduction aux Big Data et architectures associées- Pegdwendé Nicolas SAWADOGO 3.2 Introduction au traitement distribué Definition 5 Le traitement distribué fait référence à l’utilisation d’un réseau d’ordinateurs connectés (souvent appelé un cluster) pour exécuter des processus de manière distribuée. Chaque nœud du cluster peut travailler sur une portion de la tâche globale de manière relativement indépendante. Contrairement au traitement pa- rallèle qui peut se faire sur un seul système avec plusieurs processeurs, le traite- ment distribué implique des systèmes informatiques distincts. Caractéristiques du traitement distribué : — Réseau d’ordinateurs : Utilise un ensemble d’ordinateurs connectés pour exécuter des applications. — Mémoire distribuée : Chaque nœud de traitement a sa propre mémoire locale ; les données sont distribuées à travers le cluster. — Évolutivité : Les systèmes distribués sont souvent plus faciles à scaler en ajoutant sim- plement plus de nœuds au réseau. — Résilience et disponibilité : La défaillance d’un seul nœud n’arrête pas nécessaire- ment l’ensemble du processus ; les systèmes distribués peuvent offrir une meilleure tolérance aux pannes. 3.3 MapReduce et Apache Spark MapReduce et Apache Spark sont deux frameworks de programmation pour le traitement de données à grande échelle, mais ils adoptent des approches différentes pour le traitement distribué. MapReduce Definition 6 MapReduce est un modèle de programmation pour le traitement des données qui a été popularisé par Google. Apache Hadoop est une implémentation open- source de MapReduce qui est largement utilisée dans l’industrie. Le modèle Ma- 8 CHAPITRE 3. TRAITEMENT DES DONNÉES À GRANDE ÉCHELLE pReduce divise le processus de traitement en deux grandes phases : Map et Re- duce. — Phase Map : Dans cette phase, le framework prend en entrée des paires clé-valeur et produit un ensemble intermédiaire de paires clé-valeur. Le "Mapper" traite les don- nées de manière parallèle et distribuée sur différents nœuds. — Phase Reduce : Les sorties de la phase Map sont regroupées par clés et passées à la phase Reduce. Le "Reducer" agrège les valeurs de chaque clé pour produire un en- semble de sortie plus petit et souvent, plus significatif. Apache Spark Definition 7 Apache Spark est un framework de traitement de données plus récent qui étend le modèle MapReduce pour supporter de nouveaux types d’opérations et optimise le traitement. Spark est conçu pour être rapide et généraliste. Caractéristiques d’Apache Spark : — Performances : Les traitements sont souvent plus rapides que ceux de MapReduce grâce à l’utilisation intensive de la mémoire vive. — Flexibilité : Spark peut être utilisé pour une variété de traitements, y compris ETL (transfert de données), requêtes interactives, et plus encore. — Facilité d’utilisation : Les APIs de Spark sont disponibles dans plusieurs langages (Scala, Java, Python, R), ce qui le rend plus accessible. 9 C HAPITRE 4 Architectures Big Data 4.1 Conteneurisation avec Docker Definition 8 La conteneurisation est une méthode de virtualisation au niveau du système d’ex- ploitation qui permet de déployer et d’exécuter des applications et leurs dépen- dances dans des processus isolés appelés conteneurs. Chaque conteneur partage le même système d’exploitation hôte mais fonctionne comme une entité distincte avec sa propre copie de l’espace utilisateur, ce qui inclut le système de fichiers, les processus, la mémoire, les ports réseau, etc. Caractéristiques principales : — Légèreté : Les conteneurs nécessitent moins de ressources que les machines virtuelles traditionnelles car ils partagent le noyau du système d’exploitation hôte et ne néces- sitent pas de système d’exploitation invité complet. — Portabilité : Les conteneurs encapsulent l’application et son environnement, ce qui permet de les transférer facilement entre différents systèmes d’exploitation, plate- formes de cloud, et environnements de production, de développement, ou de test. — Isolation : Les conteneurs offrent une isolation des applications pour plus de sécurité et de stabilité. Docker est une des principales plateformes de conteneurisation. Elle permet aux dévelop- peurs de créer, déployer et exécuter des applications dans des conteneurs. Un conteneur Docker peut être vu comme une boîte dans laquelle tout ce qui est nécessaire pour exécu- ter une application est emballé : le code, les bibliothèques runtime, les outils système, les fichiers de configuration, et les dépendances. 10 CHAPITRE 4. ARCHITECTURES BIG DATA 4.2 Services cloud Un service cloud est un terme général qui désigne toute ressource fournie sur Internet par des fournisseurs de services cloud. Ces services sont conçus pour fournir des solutions d’hé- bergement facile, évolutives, et à la demande pour les entreprises et les utilisateurs finaux. Definition 9 Le cloud, ou l’informatique en nuage (cloud computing en anglais), est un modèle permettant un accès réseau pratique et à la demande à un ensemble partagé de ressources informatiques configurables (par exemple, des réseaux, des serveurs, du stockage, des applications et des services) qui peuvent être rapidement provi- sionnés et libérés avec un minimum d’effort de gestion ou d’interaction avec le fournisseur de service. Les principaux modèles de services cloud sont : — Infrastructure as a Service (IaaS) IaaS fournit des infrastructures informatiques vir- tuelles, telles que des serveurs virtuels, du stockage, et des réseaux. Les utilisateurs louent ces ressources en fonction de leurs besoins et paient généralement à l’usage. Cela élimine le besoin d’investissements matériels lourds et la maintenance associée. Exemples de fournisseurs IaaS : Amazon Web Services (AWS) Microsoft Azure Google Compute Engine (GCE) — Platform as a Service (PaaS) PaaS offre un environnement de développement et de déploiement pour les applications. Les développeurs peuvent se concentrer sur la création de logiciels sans se soucier de la gestion de l’infrastructure sous-jacente, comme 11 Introduction aux Big Data et architectures associées- Pegdwendé Nicolas SAWADOGO les serveurs, les bases de données, et les réseaux. Exemples de fournisseurs PaaS : Heroku Google App Engine Microsoft Azure App Ser- vices — Software as a Service (SaaS) SaaS délivre des applications logicielles via Internet, gé- néralement sur un modèle d’abonnement. Les utilisateurs peuvent accéder à des ap- plications via un navigateur web sans avoir à installer ou à maintenir le logiciel eux- mêmes. Exemples de fournisseurs SaaS : Google Workspace (anciennement G Suite) Microsoft Office 365 Salesforce Exemples de services cloud — Amazon web services — Google Cloud Platform — Microsoft Azure 12 Références 1. https://spark.apache.org/ 2. https://www.docker.com/ 3. https://www.ibm.com/fr-fr/topics/hdfs 4. https://openclassrooms.com/fr/courses/4297166-realisez-des-calculs-distribues-su 4297173-prenez-vos-marques-dans-le-monde-du-big-data 13 Introduction aux Big Data et architectures associées- Pegdwendé Nicolas SAWADOGO 14 CHAPITRE 4. ARCHITECTURES BIG DATA 15 Pegdwendé Nicolas SAWADOGO, Université Virtuelle du Burkina Faso, 5 novembre 2023

Use Quizgecko on...
Browser
Browser