Big Data
Mouna TORJMEN KHEMAKHEM
Ecole Nationale d’Ingénieurs de Sfax (ENIS)
2017-2018
Chapitre 3
Spark
2222
Mouna TORJMEN KHEMAKHEM
Plan du chapitre
Présentation et Historique
Spark Vs. Hadoop
Ecosysteme Spark
Les RDD
Fonctionnement de Spark
3333
Mouna TORJMEN KHEMAKHEM
Traitement de larges volumes de données
Traitement distribué
Ecrit en Scala, bindings Java et Python
Historique
2009: Développé à l'université de Californie à Berkeley par
Spark-Présentation
AMPLab.
But: accélérer le traitement des systèmes Hadoop.
Juin 2013: Spark est transmis à la fondation Apache et
devient l'un des projets les plus actif « Top Level project »
Mai 2014: version 1.0.0
Mai 2017 :version 2.1.1. , la dernière version disponible
4
4444
Mouna TORJMEN KHEMAKHEM
Spark Vs. Hadoop
Proximité avec Hadoop
Même cas d’utilisation
Même modèle de développement: MapReduce
Intégration dans l’Ecosystème
Plus simple qu’HadoopPlus simple qu’Hadoop
API plus simple à prendre en main
Modèle MapReduce relâché
Spark Shell: traitement interactif
5555
Mouna TORJMEN KHEMAKHEM
Plus rapide qu’Hadoop
5 Novembre 2014: Spark a gagné le Daytona GraySort
Contest.
Objectif: trier 100 To de données le plus rapidement
possible.
Spark Vs. Hadoop
possible.
Hadoop MapReduce Spark
72 minutes 23 minutes
2100 nœuds (50400 cores) 206 nœuds (6592 cores)
La puissance de Spark fut démontrée en étant 3 fois plus rapide et
en utilisant approximativement 10 fois moins de machines.
6666
Mouna TORJMEN KHEMAKHEM
Modèle d’exécution
Pour chaque opération Map/Reduce:
4 mouvements sur le disque (2 lectures + 2 écritures)
MAP
Hadoop
Spark Vs. Hadoop
REDUCE
Problème de performance:
-soit les données sont très grandes
-soit besoin de faire des opérations itératives
7777
Mouna TORJMEN KHEMAKHEM
Modèle d’exécution
Spark Vs. Hadoop
8888
Mouna TORJMEN KHEMAKHEM
Modèle de programmation
Hadoop propose seulement 2 opérations: Map et Reduce
Spark propose un modèle plus souple: map/reduce/filter/join…
Spark Vs. Hadoop
9999
Mouna TORJMEN KHEMAKHEM
Ecosystème SPARK
10101010
Mouna TORJMEN KHEMAKHEM
Ecosystème SPARK
Stockage
11111111
Mouna TORJMEN KHEMAKHEM
RDD: Resilient Distributed Dataset
Abstraction, collection traitée en parallèle
Tolérant à la panne
Manipulation de tuples
Clé/valeur
Caractéristiques de SPARK
Clé/valeur
Tuples indépendants les uns des autres
12121212
Mouna TORJMEN KHEMAKHEM
RDD: Resilient Distributed Dataset:
Dataset : un ensemble de données (une collection).
Distributed : cet ensemble est distribué afin d’être découpée pour être
traitée dans les différents nœuds.
Resilient : Il est résilient, car il pourra être relu en cas de problème.
Les RDDs
Resilient : Il est résilient, car il pourra être relu en cas de problème.
13131313
Mouna TORJMEN KHEMAKHEM
RDD :simple à créer et peut être obtenu à partir de
multiples sources :
Une collection (List, Set), transformée en RDD
Un fichier local ou distribué (HDFS) dont le format est
configurable: texte, SequenceFile Hadoop, JSON…
Les RDDs
configurable: texte, SequenceFile Hadoop, JSON…
Une base de données: JDBC, HBase…
Un autre RDD auquel est appliqué une transformation (un
filtre, un mapping…).
C’est possible d’exporter le contenu d’un RDD dans un
fichier, dans une base de données ou dans une collection.
14141414
Mouna TORJMEN KHEMAKHEM
Les RDD possèdent deux types de méthodes :
Les transformations qui donnent en sortie un autre RDD.
Les actions qui donnent en sortie... autre chose qu'un RDD.
Les RDDs
15151515
Mouna TORJMEN KHEMAKHEM
Exemple de transformations [la librairie standard de
Spark] :
map(func): applique une fonction à chacune des données.
filter(func): permet d'éliminer certaines données.
distinct(): supprime les doublons.
Les RDDs
distinct(): supprime les doublons.
groupByKey(): transforme des clés-valeurs (K, V) en (K, W)
où W est un object itérable. (K, U) et (K, V) seront
transformées en (K, [U, V]).
16161616
Mouna TORJMEN KHEMAKHEM
Exemple d’actions [la librairie standard de Spark] :
reduce(func): applique une réduction à l'ensemble des
données.
collect(): retourne toutes les données contenues dans le RDD
sous la forme de liste.
Les RDDs
count(): retourne le nombre de données contenues dans RDD
takeOrdered(n, key_func): retourne lesnpremiers éléments du
RDD ordonnés selonkey_func.
17171717
Mouna TORJMEN KHEMAKHEM
DAG « Directed Acyclic Graph » (graphe acyclique
orienté) :
les nœuds sont les RDD et les résultats.
les relations entre les nœuds sont soit des transformations,
soit des actions.
Les RDDs
Ces relations sont orientées : passage d'un RDD à un autre
se fait dans un seul sens.
Le graphe est dit acyclique car aucun RDD ne permet de se
transformer en lui-même via une série d'actions.
18181818
Mouna TORJMEN KHEMAKHEM
Tolérance aux pannes:
Si un nœud du DAG devient indisponible, il peut être
régénéré à partir de ses nœuds parents.
Les RDDs
19191919
Mouna TORJMEN KHEMAKHEM
Fonctionnement de Spark
Un cluster Spark est composé de :
un ou plusieurs workers : chaque worker instancie
un executor chargé d'exécuter les différentes tâches de
calcul.
un driver : chargé de répartir les tâches sur lesun driver : chargé de répartir les tâches sur les
différents executors.
un cluster manager : chargé d'instancier les
différents workers.
20202020
Mouna TORJMEN KHEMAKHEM
Fonctionnement de Spark
21212121
Mouna TORJMEN KHEMAKHEM
Différence entre worker et executer:
un worker : une machine physique
un executor :une application qui tourne sur cette machine
Exécution de plusieurs applications Spark sur une même
machine en même temps
Fonctionnement de Spark
machine en même temps
Chaque worker a alors plusieurs executors
un executor comme un thread de calcul.
22222222
Mouna TORJMEN KHEMAKHEM
Le cluster manager :
responsable de l'allocation des ressources, surtout dans
le cas ou plusieurs applications concurrentes sont
exécutées sur le cluster Spark.
Fonctionnement de Spark
23232323
Mouna TORJMEN KHEMAKHEM
• Répartition des données et distributions des taches
Les données sont découpées en partitions.
Chaque partition est traitée par un des executors.
Le traitement d'une partition représente une tâche.
Un cluster Spark ne peut traiter qu'une tâche à la fois par executor.
Fonctionnement de Spark
24242424
Mouna TORJMEN KHEMAKHEM
Répartition des données et distributions des taches
La taille d'une partition doit rester inférieure à la mémoire
disponible pour son executor.
Le nombre de partitions détermine le nombre de tâches à
réaliser de manière concurrente sur le cluster.
Fonctionnement de Spark
Un ensemble de tâches réalisées en parallèle constitue
une étape
Toutes les tâches d'une étape doivent être terminées avant de
passer à l'étape suivante.
Un job Spark est composé d'une suite d'étapes
la progression d'un job peut être mesurée grâce au nombre
d'étapes réalisées.
25252525
Mouna TORJMEN KHEMAKHEM
Fonctionnement de Spark
26262626
Mouna TORJMEN KHEMAKHEM
Fonctionnement de Spark
27272727
Mouna TORJMEN KHEMAKHEM

Contenu connexe

PDF
Cours Big Data Chap2
PPTX
Spark architecture
PDF
Apache spark
PDF
Big Data, Hadoop & Spark
PDF
Cours design pattern m youssfi partie 5 adapter
PDF
Cours Big Data Chap4 - Spark
PDF
Reinforcement learning, Q-Learning
PPTX
Big data ppt
Cours Big Data Chap2
Spark architecture
Apache spark
Big Data, Hadoop & Spark
Cours design pattern m youssfi partie 5 adapter
Cours Big Data Chap4 - Spark
Reinforcement learning, Q-Learning
Big data ppt

Tendances (20)

PDF
Chapitre 2 hadoop
PDF
BigData_TP4 : Cassandra
PDF
Cours Big Data Chap5
PPTX
Hive ppt (1)
PDF
BigData_TP2: Design Patterns dans Hadoop
PDF
Spark (v1.3) - Présentation (Français)
PDF
BigData_TP3 : Spark
PDF
BigData_Chp3: Data Processing
PDF
Cours Big Data Chap3
PDF
BigData_Chp2: Hadoop & Map-Reduce
PDF
BigData_TP1: Initiation à Hadoop et Map-Reduce
PDF
TP1 Big Data - MapReduce
PDF
BigData_Chp4: NOSQL
PDF
Chapitre1 introduction
PDF
BigData_TP5 : Neo4J
PDF
Hadoop Hbase - Introduction
PDF
Les BD NoSQL
PDF
Cours Big Data Chap1
PDF
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
PDF
Installation hadoopv2.7.4-amal abid
Chapitre 2 hadoop
BigData_TP4 : Cassandra
Cours Big Data Chap5
Hive ppt (1)
BigData_TP2: Design Patterns dans Hadoop
Spark (v1.3) - Présentation (Français)
BigData_TP3 : Spark
BigData_Chp3: Data Processing
Cours Big Data Chap3
BigData_Chp2: Hadoop & Map-Reduce
BigData_TP1: Initiation à Hadoop et Map-Reduce
TP1 Big Data - MapReduce
BigData_Chp4: NOSQL
Chapitre1 introduction
BigData_TP5 : Neo4J
Hadoop Hbase - Introduction
Les BD NoSQL
Cours Big Data Chap1
Traitement distribue en BIg Data - KAFKA Broker and Kafka Streams
Installation hadoopv2.7.4-amal abid
Publicité

Similaire à Chapitre 3 spark (20)

PDF
PDF
Techday Arrow Group: Hadoop & le Big Data
PDF
Tech day hadoop, Spark
PDF
Spark RDD : Transformations & Actions
PPTX
spark_intro_1208
PPTX
Spark - An In-Memory Distributed Computing Engine.pptx
PDF
Spark - Ippevent 19-02-2015
PDF
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
PDF
Hadoop Introduction in Paris
PDF
Spark, ou comment traiter des données à la vitesse de l'éclair
PPTX
Spark docker
PDF
Introduction Apche Spark
PDF
Distributed computing with Spark 2.x
PDF
chap 2 - cours -99999897765579 Spark.pdf
DOCX
Résumkbjnnbuhb.jhyhuhuhhhhhhhhhhhhhhhhhhhhhhhé.docx
PPTX
160813-technology-template-16x9.pptx
PPTX
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
PDF
Mapreduce
PDF
Presentation intis 2017 version27112017
PPTX
10 big data hadoop
Techday Arrow Group: Hadoop & le Big Data
Tech day hadoop, Spark
Spark RDD : Transformations & Actions
spark_intro_1208
Spark - An In-Memory Distributed Computing Engine.pptx
Spark - Ippevent 19-02-2015
CHAPITRE3_Fondements_Big_Data_MR_YARN - converted (1).pdf
Hadoop Introduction in Paris
Spark, ou comment traiter des données à la vitesse de l'éclair
Spark docker
Introduction Apche Spark
Distributed computing with Spark 2.x
chap 2 - cours -99999897765579 Spark.pdf
Résumkbjnnbuhb.jhyhuhuhhhhhhhhhhhhhhhhhhhhhhhé.docx
160813-technology-template-16x9.pptx
Paris Spark meetup : Extension de Spark (Tachyon / Spark JobServer) par jlamiel
Mapreduce
Presentation intis 2017 version27112017
10 big data hadoop
Publicité

Plus de Mouna Torjmen (9)

PDF
POO Java Introduction
PDF
POO Java Chapitre 6 Exceptions
PDF
POO Java Chapitre 4 Heritage et Polymorphisme
PDF
POO Java Chapitre 3 Collections
PDF
POO Java Chapitre 2 Encapsulation
PDF
POO Java Chapitre 1 Classe & Objet
PDF
TIC & E-Learning
PDF
Apprentissage Par Projet APP
PDF
Chapitre 4 no sql
POO Java Introduction
POO Java Chapitre 6 Exceptions
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 3 Collections
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 1 Classe & Objet
TIC & E-Learning
Apprentissage Par Projet APP
Chapitre 4 no sql

Dernier (12)

PPTX
Amélioration des propriétés mécanique_pdf.pptx
PPTX
DASY : Détection Automatisée des Symptômes de jaunisse de la vigne
PDF
Rapport_PFE_Seifeddine_ABIDI_ESPRIT_24/25
PDF
Processus-Elaboration-Projet-de-Construction.pdf
PPTX
Amélioration des propriétés mécanique_pdf.pptx
PPTX
COURS INFORMATIQUE rtyuiofghjkvbn,yuighj
PDF
formation en fibre optique le support le plus .pdf
PDF
DASY : Détection Automatisée des Symptômes de jaunisse de la vigne
PDF
Algorithmique et programmation Algorithmique et programmation
PPTX
Mechanical system design used to design dental implants
PPTX
PRÉSENTATION MEMOIRE DE FIN DE FORMATION
PPTX
Slide Steve2 optimatisation sur les engrainage .pptx
Amélioration des propriétés mécanique_pdf.pptx
DASY : Détection Automatisée des Symptômes de jaunisse de la vigne
Rapport_PFE_Seifeddine_ABIDI_ESPRIT_24/25
Processus-Elaboration-Projet-de-Construction.pdf
Amélioration des propriétés mécanique_pdf.pptx
COURS INFORMATIQUE rtyuiofghjkvbn,yuighj
formation en fibre optique le support le plus .pdf
DASY : Détection Automatisée des Symptômes de jaunisse de la vigne
Algorithmique et programmation Algorithmique et programmation
Mechanical system design used to design dental implants
PRÉSENTATION MEMOIRE DE FIN DE FORMATION
Slide Steve2 optimatisation sur les engrainage .pptx

Chapitre 3 spark

  • 1. Big Data Mouna TORJMEN KHEMAKHEM Ecole Nationale d’Ingénieurs de Sfax (ENIS) 2017-2018
  • 3. Plan du chapitre Présentation et Historique Spark Vs. Hadoop Ecosysteme Spark Les RDD Fonctionnement de Spark 3333 Mouna TORJMEN KHEMAKHEM
  • 4. Traitement de larges volumes de données Traitement distribué Ecrit en Scala, bindings Java et Python Historique 2009: Développé à l'université de Californie à Berkeley par Spark-Présentation AMPLab. But: accélérer le traitement des systèmes Hadoop. Juin 2013: Spark est transmis à la fondation Apache et devient l'un des projets les plus actif « Top Level project » Mai 2014: version 1.0.0 Mai 2017 :version 2.1.1. , la dernière version disponible 4 4444 Mouna TORJMEN KHEMAKHEM
  • 5. Spark Vs. Hadoop Proximité avec Hadoop Même cas d’utilisation Même modèle de développement: MapReduce Intégration dans l’Ecosystème Plus simple qu’HadoopPlus simple qu’Hadoop API plus simple à prendre en main Modèle MapReduce relâché Spark Shell: traitement interactif 5555 Mouna TORJMEN KHEMAKHEM
  • 6. Plus rapide qu’Hadoop 5 Novembre 2014: Spark a gagné le Daytona GraySort Contest. Objectif: trier 100 To de données le plus rapidement possible. Spark Vs. Hadoop possible. Hadoop MapReduce Spark 72 minutes 23 minutes 2100 nœuds (50400 cores) 206 nœuds (6592 cores) La puissance de Spark fut démontrée en étant 3 fois plus rapide et en utilisant approximativement 10 fois moins de machines. 6666 Mouna TORJMEN KHEMAKHEM
  • 7. Modèle d’exécution Pour chaque opération Map/Reduce: 4 mouvements sur le disque (2 lectures + 2 écritures) MAP Hadoop Spark Vs. Hadoop REDUCE Problème de performance: -soit les données sont très grandes -soit besoin de faire des opérations itératives 7777 Mouna TORJMEN KHEMAKHEM
  • 8. Modèle d’exécution Spark Vs. Hadoop 8888 Mouna TORJMEN KHEMAKHEM
  • 9. Modèle de programmation Hadoop propose seulement 2 opérations: Map et Reduce Spark propose un modèle plus souple: map/reduce/filter/join… Spark Vs. Hadoop 9999 Mouna TORJMEN KHEMAKHEM
  • 12. RDD: Resilient Distributed Dataset Abstraction, collection traitée en parallèle Tolérant à la panne Manipulation de tuples Clé/valeur Caractéristiques de SPARK Clé/valeur Tuples indépendants les uns des autres 12121212 Mouna TORJMEN KHEMAKHEM
  • 13. RDD: Resilient Distributed Dataset: Dataset : un ensemble de données (une collection). Distributed : cet ensemble est distribué afin d’être découpée pour être traitée dans les différents nœuds. Resilient : Il est résilient, car il pourra être relu en cas de problème. Les RDDs Resilient : Il est résilient, car il pourra être relu en cas de problème. 13131313 Mouna TORJMEN KHEMAKHEM
  • 14. RDD :simple à créer et peut être obtenu à partir de multiples sources : Une collection (List, Set), transformée en RDD Un fichier local ou distribué (HDFS) dont le format est configurable: texte, SequenceFile Hadoop, JSON… Les RDDs configurable: texte, SequenceFile Hadoop, JSON… Une base de données: JDBC, HBase… Un autre RDD auquel est appliqué une transformation (un filtre, un mapping…). C’est possible d’exporter le contenu d’un RDD dans un fichier, dans une base de données ou dans une collection. 14141414 Mouna TORJMEN KHEMAKHEM
  • 15. Les RDD possèdent deux types de méthodes : Les transformations qui donnent en sortie un autre RDD. Les actions qui donnent en sortie... autre chose qu'un RDD. Les RDDs 15151515 Mouna TORJMEN KHEMAKHEM
  • 16. Exemple de transformations [la librairie standard de Spark] : map(func): applique une fonction à chacune des données. filter(func): permet d'éliminer certaines données. distinct(): supprime les doublons. Les RDDs distinct(): supprime les doublons. groupByKey(): transforme des clés-valeurs (K, V) en (K, W) où W est un object itérable. (K, U) et (K, V) seront transformées en (K, [U, V]). 16161616 Mouna TORJMEN KHEMAKHEM
  • 17. Exemple d’actions [la librairie standard de Spark] : reduce(func): applique une réduction à l'ensemble des données. collect(): retourne toutes les données contenues dans le RDD sous la forme de liste. Les RDDs count(): retourne le nombre de données contenues dans RDD takeOrdered(n, key_func): retourne lesnpremiers éléments du RDD ordonnés selonkey_func. 17171717 Mouna TORJMEN KHEMAKHEM
  • 18. DAG « Directed Acyclic Graph » (graphe acyclique orienté) : les nœuds sont les RDD et les résultats. les relations entre les nœuds sont soit des transformations, soit des actions. Les RDDs Ces relations sont orientées : passage d'un RDD à un autre se fait dans un seul sens. Le graphe est dit acyclique car aucun RDD ne permet de se transformer en lui-même via une série d'actions. 18181818 Mouna TORJMEN KHEMAKHEM
  • 19. Tolérance aux pannes: Si un nœud du DAG devient indisponible, il peut être régénéré à partir de ses nœuds parents. Les RDDs 19191919 Mouna TORJMEN KHEMAKHEM
  • 20. Fonctionnement de Spark Un cluster Spark est composé de : un ou plusieurs workers : chaque worker instancie un executor chargé d'exécuter les différentes tâches de calcul. un driver : chargé de répartir les tâches sur lesun driver : chargé de répartir les tâches sur les différents executors. un cluster manager : chargé d'instancier les différents workers. 20202020 Mouna TORJMEN KHEMAKHEM
  • 22. Différence entre worker et executer: un worker : une machine physique un executor :une application qui tourne sur cette machine Exécution de plusieurs applications Spark sur une même machine en même temps Fonctionnement de Spark machine en même temps Chaque worker a alors plusieurs executors un executor comme un thread de calcul. 22222222 Mouna TORJMEN KHEMAKHEM
  • 23. Le cluster manager : responsable de l'allocation des ressources, surtout dans le cas ou plusieurs applications concurrentes sont exécutées sur le cluster Spark. Fonctionnement de Spark 23232323 Mouna TORJMEN KHEMAKHEM
  • 24. • Répartition des données et distributions des taches Les données sont découpées en partitions. Chaque partition est traitée par un des executors. Le traitement d'une partition représente une tâche. Un cluster Spark ne peut traiter qu'une tâche à la fois par executor. Fonctionnement de Spark 24242424 Mouna TORJMEN KHEMAKHEM
  • 25. Répartition des données et distributions des taches La taille d'une partition doit rester inférieure à la mémoire disponible pour son executor. Le nombre de partitions détermine le nombre de tâches à réaliser de manière concurrente sur le cluster. Fonctionnement de Spark Un ensemble de tâches réalisées en parallèle constitue une étape Toutes les tâches d'une étape doivent être terminées avant de passer à l'étape suivante. Un job Spark est composé d'une suite d'étapes la progression d'un job peut être mesurée grâce au nombre d'étapes réalisées. 25252525 Mouna TORJMEN KHEMAKHEM