Spark - An In-Memory Distributed Computing Engine
Présentation Spark le Framework de big data pour traitement et l'analyse des données massives réalisé par Anass Nabil et Marouane Benabdelkader
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
Introduction to Apache Flink - Fast and reliable big data processingTill Rohrmann
This presentation introduces Apache Flink, a massively parallel data processing engine which currently undergoes the incubation process at the Apache Software Foundation. Flink's programming primitives are presented and it is shown how easily a distributed PageRank algorithm can be implemented with Flink. Intriguing features such as dedicated memory management, Hadoop compatibility, streaming and automatic optimisation make it an unique system in the world of Big Data processing.
Aljoscha Krettek is the PMC chair of Apache Flink and Apache Beam, and co-founder of data Artisans. Apache Flink is an open-source platform for distributed stream and batch data processing. It allows for stateful computations over data streams in real-time and historically. Flink supports batch and stream processing using APIs like DataSet and DataStream. Data Artisans originated Flink and provides an application platform powered by Flink and Kubernetes for building stateful stream processing applications.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
Ce étude vise à présenter la platforme Spark et les opérations (Transformation et Action) d'une RDD. Les points abordés sont Spark motivation, Positionnement de Spark dans l'écosystème BigData, Composants de Spark, Drivers et Workers, RDD & caractéristiques, vue logique de spark, vue globale sur les APIs Spark (dépendance et interaction), les différentes opérations de spark. Chaque opération est sur une fiche (objectif, signature, "à retenir" et exemple de code).
Introduction to Apache Flink - Fast and reliable big data processingTill Rohrmann
This presentation introduces Apache Flink, a massively parallel data processing engine which currently undergoes the incubation process at the Apache Software Foundation. Flink's programming primitives are presented and it is shown how easily a distributed PageRank algorithm can be implemented with Flink. Intriguing features such as dedicated memory management, Hadoop compatibility, streaming and automatic optimisation make it an unique system in the world of Big Data processing.
Aljoscha Krettek is the PMC chair of Apache Flink and Apache Beam, and co-founder of data Artisans. Apache Flink is an open-source platform for distributed stream and batch data processing. It allows for stateful computations over data streams in real-time and historically. Flink supports batch and stream processing using APIs like DataSet and DataStream. Data Artisans originated Flink and provides an application platform powered by Flink and Kubernetes for building stateful stream processing applications.
Pour accéder aux fichiers nécessaires pour faire ce TP, visitez: https://drive.google.com/folderview?id=0Bz7DokLRQvx7M2JWZEt1VHdwSE0&usp=sharing
Pour plus de contenu, Visitez http://liliasfaxi.wix.com/liliasfaxi !
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
Apache Spark in Depth: Core Concepts, Architecture & InternalsAnton Kirillov
Slides cover Spark core concepts of Apache Spark such as RDD, DAG, execution workflow, forming stages of tasks and shuffle implementation and also describes architecture and main components of Spark Driver. The workshop part covers Spark execution modes , provides link to github repo which contains Spark Applications examples and dockerized Hadoop environment to experiment with
This presentation is an introduction to Apache Spark. It covers the basic API, some advanced features and describes how Spark physically executes its jobs.
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
Quand utiliser MongoDB … Et quand vous en passer…MongoDB
> Qu'est-ce que MongoDB ?
> À quoi sert MongoDB ?
> Les points forts de MongoDB... Les points à améliorer
> Ce que les clients peuvent faire et ne pas faire avec MongoDB
> Cas d'utilisation inhabituels
> Quand utiliser MongoDB
Apache Spark is a cluster computing framework designed for fast, general-purpose processing of large datasets. It uses in-memory computing to improve processing speeds. Spark operations include transformations that create new datasets and actions that return values. The Spark stack includes Resilient Distributed Datasets (RDDs) for fault-tolerant data sharing across a cluster. Spark Streaming processes live data streams using a discretized stream model.
Apache Spark on K8S Best Practice and Performance in the CloudDatabricks
Kubernetes As of Spark 2.3, Spark can run on clusters managed by Kubernetes. we will describes the best practices about running Spark SQL on Kubernetes upon Tencent cloud includes how to deploy Kubernetes against public cloud platform to maximum resource utilization and how to tune configurations of Spark to take advantage of Kubernetes resource manager to achieve best performance. To evaluate performance, the TPC-DS benchmarking tool will be used to analysis performance impact of queries between configurations set.
Speakers: Junjie Chen, Junping Du
Apache Spark is a fast and general engine for large-scale data processing. It provides a unified API for batch, interactive, and streaming data processing using in-memory primitives. A benchmark showed Spark was able to sort 100TB of data 3 times faster than Hadoop using 10 times fewer machines by keeping data in memory between jobs.
What is Apache Spark | Apache Spark Tutorial For Beginners | Apache Spark Tra...Edureka!
This Edureka "What is Spark" tutorial will introduce you to big data analytics framework - Apache Spark. This tutorial is ideal for both beginners as well as professionals who want to learn or brush up their Apache Spark concepts. Below are the topics covered in this tutorial:
1) Big Data Analytics
2) What is Apache Spark?
3) Why Apache Spark?
4) Using Spark with Hadoop
5) Apache Spark Features
6) Apache Spark Architecture
7) Apache Spark Ecosystem - Spark Core, Spark Streaming, Spark MLlib, Spark SQL, GraphX
8) Demo: Analyze Flight Data Using Apache Spark
Apache Tez - Accelerating Hadoop Data Processinghitesh1892
Apache Tez - A New Chapter in Hadoop Data Processing. Talk at Hadoop Summit, San Jose. 2014 By Bikas Saha and Hitesh Shah.
Apache Tez is a modern data processing engine designed for YARN on Hadoop 2. Tez aims to provide high performance and efficiency out of the box, across the spectrum of low latency queries and heavy-weight batch processing.
Flexible and Real-Time Stream Processing with Apache FlinkDataWorks Summit
This document provides an overview of stream processing with Apache Flink. It discusses the rise of stream processing and how it enables low-latency applications and real-time analysis. It then describes Flink's stream processing capabilities, including pipelining of data, fault tolerance through checkpointing and recovery, and integration with batch processing. The document also summarizes Flink's programming model, state management, and roadmap for further development.
This document provides an overview of a talk on Apache Spark. It introduces the speaker and their background. It acknowledges inspiration from a previous Spark training. It then outlines the structure of the talk, which will include: a brief history of big data; a tour of Spark including its advantages over MapReduce; and explanations of Spark concepts like RDDs, transformations, and actions. The document serves to introduce the topics that will be covered in the talk.
DevOps for Applications in Azure Databricks: Creating Continuous Integration ...Databricks
Working with our customers, developers and partners around the world, it's clear DevOps has become increasingly critical to a team's success. Continuous integration (CI) and continuous delivery (CD) which is part of DevOps, embody a culture, set of operating principles, and collection of practices that enable application development teams to deliver code changes more frequently and reliably. In this session, we will cover how you can automate your entire process from code commit to production using CI/CD pipelines in Azure DevOps for Azure Databricks applications. Using CI/CD practices, you can simplify, speed and improve your cloud development to deliver features to your customers as soon as they're ready.
Slides for Data Syndrome one hour course on PySpark. Introduces basic operations, Spark SQL, Spark MLlib and exploratory data analysis with PySpark. Shows how to use pylab with Spark to create histograms.
This presentation on Spark Architecture will give an idea of what is Apache Spark, the essential features in Spark, the different Spark components. Here, you will learn about Spark Core, Spark SQL, Spark Streaming, Spark MLlib, and Graphx. You will understand how Spark processes an application and runs it on a cluster with the help of its architecture. Finally, you will perform a demo on Apache Spark. So, let's get started with Apache Spark Architecture.
YouTube Video: https://www.youtube.com/watch?v=CF5Ewk0GxiQ
What is this Big Data Hadoop training course about?
The Big Data Hadoop and Spark developer course have been designed to impart an in-depth knowledge of Big Data processing using Hadoop and Spark. The course is packed with real-life projects and case studies to be executed in the CloudLab.
What are the course objectives?
Simplilearn’s Apache Spark and Scala certification training are designed to:
1. Advance your expertise in the Big Data Hadoop Ecosystem
2. Help you master essential Apache and Spark skills, such as Spark Streaming, Spark SQL, machine learning programming, GraphX programming and Shell Scripting Spark
3. Help you land a Hadoop developer job requiring Apache Spark expertise by giving you a real-life industry project coupled with 30 demos
What skills will you learn?
By completing this Apache Spark and Scala course you will be able to:
1. Understand the limitations of MapReduce and the role of Spark in overcoming these limitations
2. Understand the fundamentals of the Scala programming language and its features
3. Explain and master the process of installing Spark as a standalone cluster
4. Develop expertise in using Resilient Distributed Datasets (RDD) for creating applications in Spark
5. Master Structured Query Language (SQL) using SparkSQL
6. Gain a thorough understanding of Spark streaming features
7. Master and describe the features of Spark ML programming and GraphX programming
Who should take this Scala course?
1. Professionals aspiring for a career in the field of real-time big data analytics
2. Analytics professionals
3. Research professionals
4. IT developers and testers
5. Data scientists
6. BI and reporting professionals
7. Students who wish to gain a thorough understanding of Apache Spark
Learn more at https://www.simplilearn.com/big-data-and-analytics/apache-spark-scala-certification-training
l'étendu big data et de l'intelligence artificielle.
l'écosystème qui englobe les différentes fonctionnalités.
les outils utilisés.
( Avec l'explosion des données et les avancées de l'apprentissage automatique, l'automatisation de la prise de décision est devenue une réalité prometteuse pour améliorer les différents secteurs d'activités.)
CNES - CCT SIL - Traitement et Manipulation de la donnée à l‘aide des technologies Big Data
Présentation du 30 Juin 2017
Les CCT sont des espaces d'échanges techniques mis en place par le CNES il y a 20 ans, dans le but de réunir différents acteurs industriels et public pour s'enrichir mutuellement.
Apache Spark in Depth: Core Concepts, Architecture & InternalsAnton Kirillov
Slides cover Spark core concepts of Apache Spark such as RDD, DAG, execution workflow, forming stages of tasks and shuffle implementation and also describes architecture and main components of Spark Driver. The workshop part covers Spark execution modes , provides link to github repo which contains Spark Applications examples and dockerized Hadoop environment to experiment with
This presentation is an introduction to Apache Spark. It covers the basic API, some advanced features and describes how Spark physically executes its jobs.
Big Data : Hadoop
- Généralité
- Architecture HDFS
- Algorithme MapRduce
- Architecture YARN
- Hadoop v3.x vs Hadoopv2.x
Cours Big Data - Chap2 - GI3 - ENIS
Quand utiliser MongoDB … Et quand vous en passer…MongoDB
> Qu'est-ce que MongoDB ?
> À quoi sert MongoDB ?
> Les points forts de MongoDB... Les points à améliorer
> Ce que les clients peuvent faire et ne pas faire avec MongoDB
> Cas d'utilisation inhabituels
> Quand utiliser MongoDB
Apache Spark is a cluster computing framework designed for fast, general-purpose processing of large datasets. It uses in-memory computing to improve processing speeds. Spark operations include transformations that create new datasets and actions that return values. The Spark stack includes Resilient Distributed Datasets (RDDs) for fault-tolerant data sharing across a cluster. Spark Streaming processes live data streams using a discretized stream model.
Apache Spark on K8S Best Practice and Performance in the CloudDatabricks
Kubernetes As of Spark 2.3, Spark can run on clusters managed by Kubernetes. we will describes the best practices about running Spark SQL on Kubernetes upon Tencent cloud includes how to deploy Kubernetes against public cloud platform to maximum resource utilization and how to tune configurations of Spark to take advantage of Kubernetes resource manager to achieve best performance. To evaluate performance, the TPC-DS benchmarking tool will be used to analysis performance impact of queries between configurations set.
Speakers: Junjie Chen, Junping Du
Apache Spark is a fast and general engine for large-scale data processing. It provides a unified API for batch, interactive, and streaming data processing using in-memory primitives. A benchmark showed Spark was able to sort 100TB of data 3 times faster than Hadoop using 10 times fewer machines by keeping data in memory between jobs.
What is Apache Spark | Apache Spark Tutorial For Beginners | Apache Spark Tra...Edureka!
This Edureka "What is Spark" tutorial will introduce you to big data analytics framework - Apache Spark. This tutorial is ideal for both beginners as well as professionals who want to learn or brush up their Apache Spark concepts. Below are the topics covered in this tutorial:
1) Big Data Analytics
2) What is Apache Spark?
3) Why Apache Spark?
4) Using Spark with Hadoop
5) Apache Spark Features
6) Apache Spark Architecture
7) Apache Spark Ecosystem - Spark Core, Spark Streaming, Spark MLlib, Spark SQL, GraphX
8) Demo: Analyze Flight Data Using Apache Spark
Apache Tez - Accelerating Hadoop Data Processinghitesh1892
Apache Tez - A New Chapter in Hadoop Data Processing. Talk at Hadoop Summit, San Jose. 2014 By Bikas Saha and Hitesh Shah.
Apache Tez is a modern data processing engine designed for YARN on Hadoop 2. Tez aims to provide high performance and efficiency out of the box, across the spectrum of low latency queries and heavy-weight batch processing.
Flexible and Real-Time Stream Processing with Apache FlinkDataWorks Summit
This document provides an overview of stream processing with Apache Flink. It discusses the rise of stream processing and how it enables low-latency applications and real-time analysis. It then describes Flink's stream processing capabilities, including pipelining of data, fault tolerance through checkpointing and recovery, and integration with batch processing. The document also summarizes Flink's programming model, state management, and roadmap for further development.
This document provides an overview of a talk on Apache Spark. It introduces the speaker and their background. It acknowledges inspiration from a previous Spark training. It then outlines the structure of the talk, which will include: a brief history of big data; a tour of Spark including its advantages over MapReduce; and explanations of Spark concepts like RDDs, transformations, and actions. The document serves to introduce the topics that will be covered in the talk.
DevOps for Applications in Azure Databricks: Creating Continuous Integration ...Databricks
Working with our customers, developers and partners around the world, it's clear DevOps has become increasingly critical to a team's success. Continuous integration (CI) and continuous delivery (CD) which is part of DevOps, embody a culture, set of operating principles, and collection of practices that enable application development teams to deliver code changes more frequently and reliably. In this session, we will cover how you can automate your entire process from code commit to production using CI/CD pipelines in Azure DevOps for Azure Databricks applications. Using CI/CD practices, you can simplify, speed and improve your cloud development to deliver features to your customers as soon as they're ready.
Slides for Data Syndrome one hour course on PySpark. Introduces basic operations, Spark SQL, Spark MLlib and exploratory data analysis with PySpark. Shows how to use pylab with Spark to create histograms.
This presentation on Spark Architecture will give an idea of what is Apache Spark, the essential features in Spark, the different Spark components. Here, you will learn about Spark Core, Spark SQL, Spark Streaming, Spark MLlib, and Graphx. You will understand how Spark processes an application and runs it on a cluster with the help of its architecture. Finally, you will perform a demo on Apache Spark. So, let's get started with Apache Spark Architecture.
YouTube Video: https://www.youtube.com/watch?v=CF5Ewk0GxiQ
What is this Big Data Hadoop training course about?
The Big Data Hadoop and Spark developer course have been designed to impart an in-depth knowledge of Big Data processing using Hadoop and Spark. The course is packed with real-life projects and case studies to be executed in the CloudLab.
What are the course objectives?
Simplilearn’s Apache Spark and Scala certification training are designed to:
1. Advance your expertise in the Big Data Hadoop Ecosystem
2. Help you master essential Apache and Spark skills, such as Spark Streaming, Spark SQL, machine learning programming, GraphX programming and Shell Scripting Spark
3. Help you land a Hadoop developer job requiring Apache Spark expertise by giving you a real-life industry project coupled with 30 demos
What skills will you learn?
By completing this Apache Spark and Scala course you will be able to:
1. Understand the limitations of MapReduce and the role of Spark in overcoming these limitations
2. Understand the fundamentals of the Scala programming language and its features
3. Explain and master the process of installing Spark as a standalone cluster
4. Develop expertise in using Resilient Distributed Datasets (RDD) for creating applications in Spark
5. Master Structured Query Language (SQL) using SparkSQL
6. Gain a thorough understanding of Spark streaming features
7. Master and describe the features of Spark ML programming and GraphX programming
Who should take this Scala course?
1. Professionals aspiring for a career in the field of real-time big data analytics
2. Analytics professionals
3. Research professionals
4. IT developers and testers
5. Data scientists
6. BI and reporting professionals
7. Students who wish to gain a thorough understanding of Apache Spark
Learn more at https://www.simplilearn.com/big-data-and-analytics/apache-spark-scala-certification-training
l'étendu big data et de l'intelligence artificielle.
l'écosystème qui englobe les différentes fonctionnalités.
les outils utilisés.
( Avec l'explosion des données et les avancées de l'apprentissage automatique, l'automatisation de la prise de décision est devenue une réalité prometteuse pour améliorer les différents secteurs d'activités.)
Après un panorama du Big Data / Data Science, nos experts font le focus sur Spark, l’un des composants de la stack SMACK.
Spark est un framework de cluster computing qui permet de faire du traitement de larges volumes de données de manière distribuée. Le modèle de programmation proposé par Spark est plus simple que celui d'Hadoop et jusqu'à 100 fois plus rapide en temps d'exécution.
Nous découvrons ensuite Zeppelin, un outil graphique simple et rapide à mettre en oeuvre se plaçant au-dessus de Spark.
Pour terminer, nous nous intéressons au Machine Learning, aujourd’hui en plein essor. Pourquoi cela ? Quels sont ses principaux domaines d'applications et ses apports ? Quelles sont les principales stratégies utilisées dans le domaine de l'analyse prédictive ? Il est temps d'y voir plus clair et de comprendre les enjeux de cette discipline !
Cette étude porte sur la brique Spark SQL de la plateforme Apache Spark.
L'objectif est de présenter les concepts et les fonctionnalités de spark SQL.
Les points abordés sont :
- Architecture
- API de Spark SQL
- Opérations sur DataFrames/DataSets
- Opérations relatives au nettoyage de données
- Opérations de conversion (DataFrame, DataSet, Collection, RDD)
- Opérations relationnelles
S.M.A.C.K, Spark-Mesos-Akka-Cassandra-Kafka, fait partie des nouvelles générations d’architectures “BigData” open source proposant une alternative et / ou une complémentarité à Hadoop / Map-Reduce.
À la différence the Hadoop / Map-Reduce qui fournit une architecture permettant de paralléliser les I/O disque et réseau, S.M.A.C.K utilise d’avantage la mémoire ce qui permet de libérer les CPUs des tâches de I/O et ainsi augmenter les capacités de calcul pour un même cluster. L’architecture S.M.A.C.K, et Spark en particulier, est particulièrement plébiscitée par la communauté autour de la Data Science.
Il s’agit d’une architecture ”BigData” très populaire qui se trouve être un assemblage de services spécialisés à la différence d’une solution unique implémentant une liste de patterns et principes ce qui lui apporte une grande flexibilité mais également une certaine complexité.
This talk (in french) develops how users can extend Spark and Spark SQL for processing Spatial Big Data. The talk focus only on Vector Data but the same tricks can be applied to Raster Datasets.
A longer version will be posted later with more details.
Spark - An In-Memory Distributed Computing Engine.pptx
1. Présenté par :
BENABDELKADER MAROUANE
NABIL Anass
Université Sultan Moulay Slimane
École Supérieure de technologie – Fkih Ben Salah
Licence Professionnelle Infrastructures, Traitement et Analyse de données Massives (BIG DATA)
Année universitaire : 2023-2024
Spark - An In-Memory Distributed
Computing Engine
Encadré par :
Prof A.Amine
2. Plan
I. Spark : Définition
II. Batch Processing et Stream Processing
III. Les composants de Spark
IV. Architecture de Spark
V. Les caractéristiques de Spark
VI. Difference entre Spark et MapReduce
VII. RDD ( Resilient Distributed Datasets )
VIII.RDD : Transformations et Actions
IX. PySpark , Tp Pyspark
2
3. I - Spark :
● Apache Spark est un Framework Big Data de traitement de données open source à grande échelle. Il est
particulièrement adapté pour les très grandes volumétries de données et fonctionne de manière distribuée,
sous forme de clusters. Son utilisation est principalement dédié aux applications du Machine Learning et des
pipelines de données ETL (Extract, Transform, Load) .
● Spark Réalise des traitements par lots (Batch) ou à la volée (Streaming)
● Permet d’integrer tous les outils de BIG DATA (comme HDFS)
● Spark offre un traitement itératif et interactif
3
4. Traitement par lots “Batch Processing”
● Le traitement par lots (en anglais, "batch processing") est une technique de traitement de
données qui consiste à collecter, traiter et analyser un ensemble de données ou de tâches en
une seule opération, généralement de manière planifiée et périodique.
● Contrairement au traitement en temps réel, où les données sont traitées au fur et à mesure de
leur arrivée.
● le traitement par lots implique de rassembler un volume important de données avant de les
traiter en une seule fois.
4
5. Traitement par volée “ Stream Processing ”
● Le traitement par volée (ou « stream processing ») consiste à traiter les données en temps réel à mesure
qu'elles arrivent, contrairement au traitement par lots qui traite les données en ensembles complets. Il est
idéal pour les flux de données continus, permettant des réactions rapides, mais peut être plus complexe à
mettre en œuvre. Apache Spark propose Spark Streaming pour cette fonctionnalité.
● Le traitement de streaming via micro-batch dans Spark Streaming offre un équilibre entre les temps de
réponse rapides nécessaires dans le traitement en continu et l'efficacité du traitement par lots, le tout dans
un environnement unifié.
5
7. Les Composants de Spark:
● C’est le moteur d’exécution du spark, la base du
framework
● Il fournit les fonctionnalités de base de Spark,
telles que la distribution de données et la
parallélisation des tâches, des fonctionnalités
lectures/écritures de base. L’API RDD est
implémentée (Resilient Distributed Datasets)
sur Spark Core, qui est une collection logique de
données partitionnées sur le cluster.
7
Spark Core :
8. Les Composants de Spark:
● Spark SQL est une composante essentielle
d'Apache Spark qui offre une interface SQL pour
interagir avec des données structurées et semi-
structurées, améliorant ainsi la performance du
traitement de données.
● Il permet aux utilisateurs d'exécuter des
requêtes SQL ou HQL sur une variété de sources
de données, ce qui simplifie le traitement et
l'analyse des données dans l'écosystème Spark.
8
Spark SQL :
9. Les Composants de Spark:
● Spark Streaming est un composant d'Apache
Spark qui permet d'analyser des flux de
données en temps réel, idéal pour des
applications nécessitant une réponse
instantanée aux événements en cours.
9
Spark Streaming :
10. Les Composants de Spark:
● MLlib, intégrée à Apache Spark, est une
bibliothèque de machine learning robuste et
scalable. Elle offre des algorithmes divers
pour la classification, la régression, le
clustering, et le filtrage collaboratif, optimisés
pour le traitement de données massives.
Grâce à son intégration étroite avec Spark,
MLlib permet une analyse de données rapide
et efficace, rendant le machine learning
accessible et performant sur de grands
ensembles de données.
10
MLlib (librairie Machine Learning) :
11. Les Composants de Spark:
● GraphX est une bibliothèque de traitement de
graphes intégrée à Apache Spark. Elle offre des
outils pour construire, manipuler et analyser des
graphes à grande échelle de manière efficace et
distribuée. Il étend Spark RDD en introduisant le
concept de Resilient Distributed Property Graph,
un graphe où chaque nœud et chaque arête a des
propriétés associées. Cette bibliothèque inclut des
API pour la création de graphes, la modification de
leurs structures, la réalisation de calculs sur les
nœuds et les arêtes, et l'implémentation
d'algorithmes graphiques
11
GraphX :
12. Les Composants de Spark:
● Dans le contexte de Spark, les "packages" font
généralement référence à des bibliothèques
supplémentaires ou à des modules qui peuvent
être ajoutés à l'installation de Spark pour étendre
ses capacités. Ces packages peuvent inclure des
connecteurs pour diverses sources de données, des
bibliothèques pour le traitement avancé des
données, des extensions pour le machine learning,
etc.
12
Packages :
13. Les Composants de Spark:
● Il faut bien comprendre que Spark n’est pas
une base de données et ne stocke rien, il se
base sur des systèmes de stockage comme
Hadoop, AWS S3, Cassandra, MongoDB, etc.
13
Stockage
14. Les Composants de Spark:
● Spark Prise en charge de plusieurs langages
de programmation : Scala, Java, Python et R,
ce qui facilite le développement
d'applications Big Data dans le langage de
programmation de votre choix.
14
langage de programmation
15. Architecture Spark:
Apache Spark adopte une architecture maître-esclave, dans laquelle le programme Driver agit en tant que maître,
coordonnant et distribuant les tâches de traitement aux Workers, ou nœuds esclaves, chacun hébergeant des
Executors pour exécuter ces tâches, avec le Cluster Manager supervisant la gestion des ressources du cluster.
15
16. Architecture Spark:
Driver Program: Le driver program est le point d'entrée de l'application Spark. Il contient le code de l'application
Spark, y compris les transformations et les actions à effectuer sur les données. Le driver program communique avec
le Cluster Manager pour allouer des ressources et coordonner les tâches.
16
17. Architecture Spark:
Cluster Manager: responsable de la gestion des ressources du cluster, telles que les nœuds de calcul. Spark prend en
charge plusieurs gestionnaires de cluster, notamment Apache Mesos, Hadoop YARN, et son propre gestionnaire de
cluster appelé Standalone. Le cluster manager alloue des ressources aux applications Spark et surveille leur
exécution.
17
18. Architecture Spark:
Worker Node: un nœud (ou une machine) dans le cluster Spark qui est utilisé pour exécuter des parties des
applications Spark. Chaque Worker Node est contrôlé par le Master Node (ou Driver Node) et exécute les tâches
assignées.
18
19. Architecture Spark:
Executor: Un Executor dans Spark est un processus lancé sur les Worker Nodes qui exécute les tâches et stocke les
données pour les applications Spark. Chaque Worker Node peut avoir un ou plusieurs Executors. Les Executors sont
responsables de l'exécution des tâches assignées et du stockage de données en mémoire ou sur disque. Ils jouent un
rôle clé dans la performance de traitement des données.
19
20. Architecture Spark:
Cache: Le cache dans un Worker Node d'Apache Spark fait référence à l'utilisation de la mémoire (RAM) pour stocker
temporairement des données. Cela permet un accès rapide aux données fréquemment utilisées, ce qui peut améliorer
significativement les performances de l'application.
20
21. Architecture Spark:
Task: Une Tache dans Apache Spark est une unité de travail individuelle qui est exécutée sur un Executor dans un
Worker Node. Elle correspond à une opération spécifique sur une partition d'un RDD (Resilient Distributed Dataset)
ou d'un DataFrame, comme le traitement, le filtrage ou l'agrégation des données. Les tasks sont les éléments de base
du traitement parallèle dans Spark, permettant le traitement distribué des données sur plusieurs nœuds du cluster.
21
23. Architecture Spark:
Job: Dans Apache Spark, un "job" correspond à une série d'opérations de traitement de données initiées par une
action Spark. Lorsqu'une action est appelée sur un RDD (Resilient Distributed Dataset) ou un DataFrame, Spark
soumet un "job" au cluster pour traiter ces données.
Un job est composé de plusieurs "stages". Un stage est un ensemble de tâches qui peuvent être exécutées en
parallèle
Spark organise les opérations en stages en fonction des opérations de transformation qui nécessitent, un stage est
terminé lorsque toutes ses tâches sont terminées.
23
24. Architecture Spark:
24
1. Driver Program: Le Driver exécute le code principal de l'application Spark
et initialise le SparkContext, qui est le cœur de l'application et gère la
configuration, l'établissement de la connexion au cluster, la distribution du
code, et plus.
2. Resource Allocation by Spark Context: Le SparkContext communique avec
le Cluster Manager pour demander des ressources pour exécuter
l'application. Cela inclut la demande de lancement des Executors sur les
Worker Nodes.
3. Resource Allocation by Cluster Manager: Le Cluster Manager attribue les
ressources disponibles, en choisissant les Worker Nodes qui exécuteront
les Executors pour le job en question.
4. Confirmation to Spark Context: Une fois que le Cluster Manager a alloué
les ressources, il informe le SparkContext des détails des ressources
allouées, permettant au Task Scheduler de savoir où les tâches peuvent
être exécutées.
25. Architecture Spark:
25
5. Job Creation: Lorsqu'une action est rencontrée dans le code, le
SparkContext crée un job qui est une instance d'exécution des
transformations RDD nécessaires pour obtenir le résultat de l'action.
6. DAG Scheduler: Le DAG Scheduler crée un plan d'exécution sous la
forme d'un graphe acyclique dirigé qui illustre les RDDs, les
transformations et les actions. Les stages sont formés ici, où chaque
stage contient des tâches qui peuvent être exécutées en parallèle.
7. Task Scheduling: Le Task Scheduler ordonne les stages basés sur les
dépendances et les contraintes de données. Il décide de l'ordre
d'exécution des stages et prépare l'ordonnancement des tâches au
sein de chaque stage.
8. Task Distribution: Le Task Scheduler envoie ensuite les tâches aux
Executors sur les Worker Nodes pour être exécutées. Les Executors
exécutent les tâches et retournent les résultats au Driver.
26. Les principales caractéristiques de Spark
● In-Memory Processing : Spark stocke les données en mémoire, ce qui permet des
performances plus rapides par rapport à d'autres systèmes de traitement de données
qui utilisent un stockage sur disque.
● Traitements à la volée: L'un des avantages de Spark par rapport à Hadoop Map Reduce,
c'est qu'il permet de traiter les données à la volée, pas uniquement en batch.
● Traitement distribué : Spark est conçu pour fonctionner sur un cluster de machines,
permettant de traiter des volumes de données importants en parallèle.
26
27. Les principales caractéristiques de Spark
● Bibliothèques intégrées : Spark intègre de nombreuses bibliothèques pour des tâches
telles que le traitement de flux en temps réel (Spark Streaming), l'apprentissage
automatique (MLlib), le traitement graphique (GraphX) et l'analyse SQL (Spark SQL).
● Intégration avec d'autres outils : Spark s'intègre facilement avec d'autres outils de
l'écosystème Big Data, tels qu'Hadoop HDFS, Hive, et d'autres solutions de stockage et
de traitement de données.
27
28. Spark , MapReduce
● MapReduce et Spark sont deux frameworks
de traitement distribué largement utilisés
dans le domaine du traitement de données
à grande échelle.
● Cependant, Spark offre plusieurs avantages
par rapport à MapReduce et surmonte
certaines de ses limites
28
31. 31
Spark utilise quoi Pour stockage dans Mémoire ?
● Spark utilise une structure de données fondamentale connue sous le nom de RDD (Resilient
Distributed Datasets).
● Les RDD sont des collections distribuées d'éléments immuables, tolérants aux pannes et pouvant
être traités en parallèle.
● Les RDD sont divisés en partitions et peuvent être exécutés sur différents nœuds de cluster.
● Spark conserve l’historique des opérations qui a permis de constituer un RDD, et la reprise sur
panne s’appuie sur cet historique afin de reconstituer le RDD en cas de panne.
32. Operations sur RDD
● Pour travailler avec les RDD, Spark propose
deux types d'opérations : les
transformations et les actions.
● Les transformations sont les fonctions qui
sont appliquées sur un RDD existant pour en
dériver un nouveau. Il prend RDD en entrée
et produit un ou plusieurs RDDS en sortie.
● Les actions sont des opérations Spark RDD
qui donnent des valeurs non RDD. Action
renvoie une valeur au programme pilote
après avoir exécuté un calcul sur l'ensemble
de données.
32
33. 33
Transformation Narrow et Wide
chaque partition d’entrée ne
contribuera qu’à une seule
partition de sortie.
des partitions d'entrée contribuer
à de nombreuses partitions de
sortie
36. RDD
● Il existe trois façons de créer un RDD dans Spark :
1. Collections parallélisées : Les éléments de collection sont copiés dans un
ensemble de données distribué qui peut être exploité en parallèle.
2. Ensembles de données externes : lorsque les données sont importées de
l'extérieur de Spark, soit depuis local(Text,csv…), soit depuis hadoop(HDFS).
3. Transformations : Création d'un nouveau RDD à partir d'un existant.
36
37. 37
Apache Spark-RDD
● Des transformations créent des RDD à partir d’une ou deux sources de données.
● S’il n’est pas marqué comme persistant, le RDD sera transitoire et ne sera pas conservé en
mémoire après calcul
● Sinon, il est stocké en RAM, et disponible comme source de données pour d’autres
transformations.
38. 38
Exemple : Analyse de fichiers log
● On veut analyser le fichier journal (log) d’une application X dont un des modules (M) est suspect ,
et par beaucoup d’autres modules.
● On constate qu’un module M produit des résultats incorrects de temps en temps
39. 39
Exemple : Analyse de fichiers log
● On construit donc un programme qui charge le log sous forme de collection, ne conserve que les
messages produits par le module M , et analyse ensuite ces messages
● On peut analyser par
utilisateur, par période,
etc.
● Application de ca dans
Spark parsuite
40. 40
// Chargement de la collection
log = load ("app.log") as (...)
// Filtrage des messages du module M
logM = filter log with log.message.contains ("Module M")
// On rend logM persistant !
logM.persist();
Analyse à partir de logM
// Filtrage par utilisateur
logUtilisateur = filter logM with log.message.contains ("utilisateur U")
// .. analyse du contenu de logProduit
Code Spark :
Exemple : Analyse de fichiers log
42. Des RDD structurés
● Un RDD est une ”boîte” (typée) destinée à contenir n’importe quel document, sans aucun
préjugé sur sa structure (ou son absence de structure)
● Spark propose (depuis la version 1.3, avec des améliorations en 1.6 puis 2.0) des RDD
structurés dans lesquels les données sont sous forme tabulaire.
● Ces RDDs structurés sont nommés :
○ Dataset
○ Dataframe
Nous avons centré sur les RDDs (API bas niveau), mais il est aujourd’hui(presque) toujours
préférable d’utiliser les API de haut niveau, Dataframes et Datasets
RDD Slow for non-JVM languages like Python
Ces structures, Datasets et Dataframes, sont assimilables à des tables relationnelles, ou à
d’autres structures tabulaires (Pandas)
42
43. DataFrame
● Il a été introduit pour la première fois dans la version 1.3 de Spark pour surmonter les
limitations du Spark RDD.
● Les DataFrames :
○ sont des structures de données tabulaires, similaires à des tables de DB
○ sont conçus pour bénéficier des optimisations de requête de Spark.
○ sont étroitement intégrés avec Spark SQL, ce qui signifie que vous pouvez effectuer
des opérations SQL directement sur les DataFrames
43
45. Différence entre Spark et PySpark :
● PySpark est une bibliothèque Python qui fournit une interface pour Apache
Spark, qui est un framework de traitement de données distribué et open
source.
● La principale différence entre les deux est que Spark est écrit en Scala, tandis
que PySpark permet aux développeurs d'utiliser Python pour interagir avec
Spark.
45