Vous êtes sur la page 1sur 43

Données Massives

Pr. EL MENDILI FATNA


Plan

Chapitre 4: Apache Spark


Qu'est-ce que le Big Data Analytics ?

■ L'analyse du big data consiste à examiner de grandes quantités de données afin de


dégager des modèles d'utilisation, des tendances, des corrélations et d'autres
informations cachées. Les entreprises utilisent le big data pour exploiter des
informations précieuses et rechercher de nouvelles opportunités.
■ Ces ensembles de données vont du téraoctet au zettaoctet et comprennent des données
organisées, semi-structurées et non structurées provenant de diverses sources.
■ Le processus de découverte des données comprend des techniques d'analyse statistique,
comme le regroupement et la régression. Ces techniques sont ensuite appliquées à des
ensembles de données plus vastes à l'aide de nouveaux outils d'IA.
Types d'analyse du Big Data
■ Plusieurs secteurs ont identifié des applications pour l'analyse des big data. Elle a permis
aux entreprises de mieux connaître leurs consommateurs, démontrant ainsi l'immense
utilité de cette technique. Explorons les différents types de techniques d'analyse des big
data.
Types d'analyse du Big Data
■ Analyse descriptive
■ Les organisations utilisent l'analyse descriptive pour se tenir au courant des tendances
récentes et des performances opérationnelles. Il analyse des ensembles de données brutes par
des opérations mathématiques, en générant des échantillons et des mesures.
■ Après avoir détecté des tendances avec l'analyse descriptive, vous pouvez utiliser d'autres
analyses pour en savoir plus sur les causes de ces tendances. Lorsque vous travaillez avec les
services financiers, les ventes et la production, vous devez tirer parti des analyses
descriptives.
■ Exemples de tâches qui nécessitent une analyse descriptive :
• Rapports financiers
• Rapports d'enquête
• Initiatives en matière de médias sociaux
Types d'analyse du Big Data
■ Analyse diagnostique
■ L'analyse diagnostique fournit une analyse complète et exhaustive d'un problème. Pour trouver la raison d'un
événement spécifique, les scientifiques des données utilisent l'analyse. L'analyse diagnostique comprend
l'analyse en profondeur, l'exploration des données et la récupération des données.
■ Imaginons que la vente d'un produit varie énormément alors que vous n'y avez apporté aucune modification
promotionnelle. Vous pouvez utiliser des analyses de diagnostic pour détecter cette transformation et sa cause.
■ Exemples de tâches qui nécessitent une analyse diagnostique :
• Recherche de modèles dans les groupes de données
• Filtrage des ensembles de données
• Théorie des probabilités
• Analyse de régression
Types d'analyse du Big Data
■ Analyse prédictive
■ Comme son nom l'indique, cette catégorie d'analyse de données permet de faire des prédictions sur des
aspects futurs et donne des résultats basés sur une gamme variée d'informations provenant d'ensembles
de données. Elle s'appuie sur des outils prédictifs et des modèles précis comme la modélisation
statistique et l'apprentissage automatique pour obtenir les meilleurs résultats.
■ Exemples de tâches qui nécessitent une analyse prédictive :
• Prévoir les demandes du client
• Gérer les calendriers d'expédition
• Rester au fait des besoins en matière d'inventaire
Types d'analyse du Big Data
■ Analyse prescriptive

• L'analyse prescriptive prend les résultats de l'analyse descriptive et prédictive et détecte des solutions pour optimiser les
pratiques commerciales. Pour ce faire, il utilise des simulations et des techniques d'analyse avancées. Il exploite les
informations pour recommander les meilleures étapes de croissance pour une organisation.
• Google a utilisé l'analyse prescriptive et l'a appliquée à la conception de voitures à conduite autonome. Ces voitures analysent
les données en temps réel et prennent des décisions en fonction de celles-ci.
• Exemples de tâches qui nécessitent des analyses prescriptives :
• Améliorer les processus
• Activer les campagnes
• Production de bœufs
• Faciliter les services aux clients
Caractéristiques de l'analyse du Big Data
• Il est nécessaire d'avoir une compréhension plus profonde de tout ce qui est vaste. Ces caractéristiques vous aideront à
décoder le big data et vous donneront une idée de la manière de traiter des données massives et fragmentées à une
vitesse gérable dans un laps de temps approprié, ce qui nous permettra d'en extraire de la valeur et de mener des
analyses en temps réel.
• En comprenant les attributs du big data, vous pouvez vous faire une idée de ses cas d'utilisation et de ses applications
précises. Explorons les aspects critiques de l'analyse des big data :
Caractéristiques de l'analyse du Big Data
1. Volume
• Dans le scénario actuel, la quantité de données que possèdent les entreprises est importante. Pour l'analyse des
big data, vous devrez traiter des volumes plus importants de données structurées et non structurées. Ces
données peuvent avoir une valeur indéfinie, comme les ensembles de données Facebook et Instagram, ou les
données de nombreuses applications web ou mobiles. Selon les tendances du marché, le volume de données va
considérablement augmenter dans les années à venir, et il y a beaucoup de place pour l'analyse approfondie
des données et la recherche de modèles.
2. Vélocité
• La vélocité fait référence à la rapidité du traitement des données. Un taux de traitement des données plus élevé
est important pour l'évaluation et la performance en temps réel de toute procédure de big data. Davantage de
données seront accessibles à l'avenir, mais la vitesse de traitement sera tout aussi importante pour que les
entreprises puissent bénéficier de l'analyse des big data.
3. Variété
• La variété fait référence aux diverses catégories de big data. C'est l'un des principaux défis que doit relever le
secteur du big data, car il a un impact sur la productivité.
• Avec l'utilisation croissante du big data, les données arrivent dans de nouveaux groupes de données.
Différentes catégories de données, comme le texte, l'audio et la vidéo, nécessitent un prétraitement
supplémentaire pour récupérer les métadonnées et en tirer une valeur accrue.
Caractéristiques de l'analyse du Big Data
4. Valeur
■ La valeur désigne les avantages que votre entreprise tire des données traitées et analysées. Il indique comment
les données correspondent aux objectifs fixés par votre entreprise et comment elles l'aident à s'améliorer. C'est
l'une des caractéristiques essentielles du big data.
5. Véracité
■ La véracité dénote la précision de vos données. C'est essentiel car une faible véracité peut avoir un impact
négatif sur l'exactitude des résultats de vos analyses de big data.
6.Validité
■ La validité indique dans quelle mesure les données sont efficaces et pertinentes pour être exploitées par une
entreprise dans le cadre des objectifs envisagés et de la finalité définie.
7. Volatilité
■ Les big data varient en permanence. Les informations que vous avez recueillies auprès d'une source précise
aujourd'hui pourraient être différentes dans peu de temps. Ce scénario indique une incohérence des données et
a un impact sur votre taux d'accommodation et d'adaptation des données.
8. Visualisation
■ La visualisation ou visualisation des données désigne la mise en valeur des analyses et des informations
générées par les big data au moyen d'illustrations visuelles telles que des diagrammes et des graphiques. Il est
devenu important que les experts en big data partagent leurs analyses et leurs idées avec des destinataires non
techniques.
SPARK
Spark ?
■ Apache Spark est un framework informatique en cluster open source qui met le feu au
monde du Big Data. Selon les experts certifiés Spark , les performances de Spark sont
jusqu'à 100 fois plus rapides en mémoire et 10 fois plus rapides sur disque par rapport à
Hadoop
■ Aujourd'hui, Spark est adopté par des acteurs majeurs comme Amazon, eBay et
Yahoo! De nombreuses organisations exécutent Spark sur des clusters avec des milliers
de nœuds
■ Apache Spark est un cluster informatique ultra-rapide conçu pour un calcul rapide. Il a
été construit sur Hadoop MapReduce et étend le modèle MapReduce pour utiliser
efficacement plus de types de calculs, notamment les requêtes interactives et le
traitement de flux.
Pourquoi Spark quand Hadoop est déjà la ?
■ La raison en est que le framework Hadoop est basé sur un modèle de programmation simple
(MapReduce) et permet une solution informatique évolutive, flexible, tolérante aux pannes et
rentable. Ici, la principale préoccupation est de maintenir la vitesse de traitement de grands
ensembles de données en termes de temps d'attente entre les requêtes et de temps d'attente
pour exécuter le programme.
■ Spark a été introduit par Apache Software Foundation pour accélérer le processus logiciel de
calcul informatique Hadoop.
■ Spark utilise Hadoop de deux manières : l'une est le stockage et l'autre le traitement . Puisque
Spark a son propre calcul de gestion de cluster, il utilise Hadoop uniquement à des fins de
stockage.
■ Nous devons examiner le concept de traitement par lots et en temps réel. Hadoop est basé sur
le concept de traitement par lots où le traitement se produit sur des blocs de données qui ont
déjà été stockés sur une période de temps. À l'époque, Hadoop a brisé toutes les attentes avec
le framework révolutionnaire MapReduce en 2005. Hadoop MapReduce est le meilleur
framework pour le traitement des données par lots.
■ Spark peut traiter les données en temps réel et était environ 100 fois plus rapide que Hadoop
MapReduce dans le traitement par lots de grands ensembles de données.
MapReduce vs Spark
Fonctionnalités d'Apache Spark
Fonctionnalités d'Apache Spark
Fonctionnalités d'Apache Spark
Fonctionnalités d'Apache Spark
Fonctionnalités d'Apache Spark
Écosystème Spark
■ L'écosystème Spark est composé de divers composants tels que Spark SQL, Spark
Streaming, MLlib, GraphX et le composant Core API.
Architecture Spark
■ Apache Spark a une architecture en couches bien définie où tous les composants et
couches Spark sont faiblement couplés. Cette architecture est en outre intégrée à
diverses extensions et bibliothèques . L'architecture Apache Spark est basée sur deux
abstractions principales :
- Ensemble de données distribué résilient (RDD)
- Graphe acyclique dirigé (DAG)
Ensemble de données distribué résilient (RDD)
■ Les RDD sont les éléments constitutifs de toute application Spark. RDD signifie :
■ Résilient : tolérant aux pannes et capable de reconstruire les données en cas de
panne
■ Distribué : données distribuées entre les multiples nœuds d'un cluster
■ Ensemble de données : collection de données partitionnées avec des valeurs
Ensemble de données distribué résilient (RDD)
■ une fois que vous avez créé un RDD, il devient immuable . Par immuable, j'entends un
objet dont l'état ne peut pas être modifié après sa création, mais qui peut sûrement être
transformé.
■ En parlant d'environnement distribué, chaque jeu de données dans RDD est divisé en
partitions logiques, qui peuvent être calculées sur différents nœuds du cluster. De ce fait,
vous pouvez effectuer des transformations ou des actions sur les données complètes en
parallèle. De plus, vous n'avez pas à vous soucier de la distribution, car Spark s'en
charge.
Ensemble de données distribué résilient (RDD)
■ Avec les RDD, vous pouvez effectuer deux types d'opérations :
■ Transformations : Ce sont les opérations qui sont appliquées pour créer un nouveau
RDD.
■ Actions : elles sont appliquées sur un RDD pour demander à Apache Spark
d'appliquer le calcul et de renvoyer le résultat au pilote.
Fonctionnement de l'architecture Spark
■ Dans votre nœud maître , vous avez le programme pilote , qui pilote votre
application. Le code que vous écrivez se comporte comme un programme pilote ou, si
vous utilisez le shell interactif, le shell agit comme programme pilote.
3. A Chaque fois qu'un RDD est créé dans le contexte Spark, il
peut être distribué sur différents nœuds et y être mis en cache.

2. Le programme pilote et le contexte Spark s'occupent de


l'exécution de la tâche au sein du cluster.

1. créer un contexte Spark.


=
Créer une passerelle vers toutes les fonctionnalités Spark
Fonctionnement de l'architecture Spark
ÉTAPE 1 : Le client soumet le code d'application de l'utilisateur Spark. Lorsqu'un code d'application est
soumis, le pilote convertit implicitement le code utilisateur qui contient des transformations et des actions en
un graphe acyclique orienté logiquement appelé DAG. À ce stade, il effectue également des optimisations telles
que des transformations en pipeline.
Fonctionnement de l'architecture Spark
ÉTAPE 2 : Après cela, il convertit le graphe logique appelé DAG en plan d'exécution physique avec plusieurs
étapes. Après conversion en un plan d'exécution physique, il crée des unités d'exécution physiques appelées
tâches sous chaque étape. Ensuite, les tâches sont regroupées et envoyées au cluster.
Fonctionnement de l'architecture Spark
ÉTAPE 3 : Maintenant, le pilote parle au gestionnaire de cluster et négocie les ressources. Le gestionnaire de
cluster lance des exécuteurs dans les nœuds de travail au nom du pilote. À ce stade, le pilote enverra les tâches
aux exécuteurs en fonction du placement des données. Lorsque les exécuteurs commencent, ils s'inscrivent
auprès des chauffeurs. Ainsi, le pilote aura une vue complète des exécuteurs qui exécutent la tâche.
Fonctionnement de l'architecture Spark
ÉTAPE 4 : Au cours de l'exécution des tâches, le programme du pilote surveillera l'ensemble des exécuteurs
qui s'exécutent. Le nœud pilote planifie également les tâches futures en fonction du placement des données.
Utiliser Spark avec Hadoop

1.HDFS : Spark peut s'exécuter sur HDFS pour tirer parti du stockage répliqué distribué.
2.MapReduce : Spark peut être utilisé avec MapReduce dans le même cluster Hadoop ou
séparément en tant que framework de traitement.
3.YARN : les applications Spark peuvent être conçues pour s'exécuter sur YARN (Hadoop
NextGen).
4.Traitement par lots et en temps réel : MapReduce et Spark sont utilisés ensemble,
MapReduce étant utilisé pour le traitement par lots et Spark pour le traitement en temps réel.
Spark streaming
Spark Streaming

Spark Streaming est une extension de l'API principale de Spark qui permet un traitement de flux
évolutif, à haut débit et tolérant aux pannes des flux de données en direct. Spark Streaming peut être
utilisé pour diffuser des données en direct et le traitement peut se produire en temps réel.

Qu'est-ce que la diffusion en temps réel

Le Data Streaming est une technique de transfert de données afin qu'elles puissent être traitées comme
un flux régulier et continu. Les technologies de streaming deviennent de plus en plus importantes avec
la croissance d'Internet.
Pourquoi Spark Streaming ?

Nous pouvons utiliser Spark Streaming pour diffuser des données en temps réel à partir de diverses
sources telles que Twitter, la bourse et les systèmes géographiques et effectuer des analyses puissantes
pour aider les entreprises.
Présentation de Spark Streaming

Spark Streaming est utilisé pour traiter les données de streaming en temps réel. C'est un ajout utile à
l'API principale de Spark. Spark Streaming permet un traitement de flux à haut débit et tolérant aux
pannes des flux de données en direct.
Flux de travail Spark Streaming
Les sources peuvent être des sources de données de streaming comme Akka, Kafka, Flume, AWS ou
Parquet pour un streaming en temps réel. Le deuxième type de sources comprend HBase, MySQL,
PostgreSQL, Elastic Search, Mongo DB et Cassandra pour le streaming statique/batch.
Fonctionnement de Spark Streaming
Contexte de diffusion
Le contexte de diffusion consomme un flux de données dans Spark. Il enregistre un Input DStream pour
produire un objet Receiver . C'est le point d'entrée principal pour la fonctionnalité Spark. Spark fournit
un certain nombre d'implémentations par défaut de sources telles que Twitter, Akka Actor et ZeroMQ qui
sont accessibles depuis le contexte.

Un objet StreamingContext peut être créé à partir d'un objet SparkContext. Un SparkContext représente la
connexion à un cluster Spark et peut être utilisé pour créer des RDD, des accumulateurs et des variables
de diffusion sur ce cluster.
Fonctionnement de Spark Streaming
DStream
Discretized Stream (DStream) est l'abstraction de base fournie par Spark Streaming. C'est un flux
continu de données. Il est reçu d'une source de données ou d'un flux de données traité généré en
transformant le flux d'entrée.

En interne, un DStream est représenté par une série continue de RDD et chaque RDD contient des
données d'un certain intervalle.
Fonctionnement de Spark Streaming
DStream
Chaque entrée DStream est associée à un objet Receiver qui reçoit les données d'une source et les stocke
dans la mémoire de Spark pour traitement.
Fonctionnement de Spark Streaming
Transformations sur DStream :
Toute opération appliquée sur un DStream se traduit par des opérations sur les RDD sous-jacents. Les
transformations permettent aux données du DStream d'entrée d'être modifiées de la même manière que
les RDD. Les DStreams prennent en charge de nombreuses transformations disponibles sur les RDD
Spark normaux.
Fonctionnement de Spark Streaming
DStreams de sortie :
Les opérations de sortie permettent aux données de DStream d'être transférées vers des systèmes
externes tels que des bases de données ou des systèmes de fichiers. Les opérations de sortie déclenchent
l'exécution réelle de toutes les transformations DStream.
Fonctionnement de Spark Streaming
3. Mise en cache :
Les DStreams permettent aux développeurs de mettre en cache/perserver les données du flux en
mémoire. Ceci est utile si les données du DStream seront calculées plusieurs fois. Cela peut être fait en
utilisant la méthode persist () sur un DStream.
Fonctionnement de Spark Streaming

4. Accumulateurs, variables de diffusion et points de contrôle

Accumulateurs : les accumulateurs sont des variables qui ne sont ajoutées que par une opération
associative et commutative. Ils sont utilisés pour implémenter des compteurs ou des sommes. Le suivi
des accumulateurs dans l'interface utilisateur peut être utile pour comprendre la progression des étapes
en cours d'execution.

Variables de diffusion : les variables de diffusion permettent au programmeur de conserver une


variable en lecture seule en cache sur chaque machine plutôt que d'en envoyer une copie avec les
tâches. Ils peuvent être utilisés pour donner à chaque nœud une copie d'un grand ensemble de données
d'entrée de manière efficace. Spark tente également de distribuer des variables de diffusion à l'aide
d'algorithmes de diffusion efficaces pour réduire les coûts de communication.

Points de contrôle : les points de contrôle sont similaires aux points de contrôle dans les jeux. Ils le
font fonctionner 24h/24 et 7j/7 et le rendent résistant aux pannes sans rapport avec la logique de
l'application.

Vous aimerez peut-être aussi