Introduction à Apache Spark - Atelier Apache Spark

Page 1 sur 7Lecteur de document UniversityLib

Introduction à Apache Spark - Atelier Apache Spark

Big Data, Data Processing, Machine Learning · course

Voir tous les documents en intelligence artificielle et données

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

Partie 2 - Introduction Apache Spark

Apache Spark - Pr sentation

Apache Spark est une plateforme de traitement sur cluster g n rique. C'est un

moteur de traitement libre, assurant un traitement parall le et distribu sur des

donn es massives. Il fournit une API de d veloppement pour permettre un

traitement en streaming, l'apprentissage automatique ou la gestion de requ tes

SQL et demandant des acc s r p t s sur un grand volume de donn es.

1 [#fn:DataFlair]

Apache Spark permet de r aliser des traitements par lot (batch processing) ou

la vol e (stream processing) et est con u de fa on pouvoir int grer tous les

outils et technologies Big Data. Par exemple, non seulement Spark peut-il

acc der aux sources de donn es de Hadoop, il peut galement tourner sur un

cluster Hadoop. tant donn que Spark n'offre pas de solution de stockage (pas

encore en tout cas), il est logique qu'il puisse proter de la puissance de HDFS

(le syst me de chiers de Hadoop), tout en offrant lui des performances

in gal es pour le traitement en batch, ainsi que d'autres facilit s (non offertes

par Hadoop Map Reduce) telles que le traitement it ratif, interactif et la vol e.

Spark offre des APIs de haut niveau en Java, Scala, Python et R. Il utilise le

traitement en m moire (in-memory processing), en exploitant les ressources

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

1/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

combin es du cluster comme si c' tait une machine unique.

Apache Spark a t cr en 2009 au laboratoire UC Berkeley R&D Lab (appel

maintenant AMPLab), et est devenu open-source en 2010 avec une licence BSD.

En 2013, il a int gr Apache Software Foundation, pour devenir, en 2014, un

projet Apache de haut niveau.

Apache Spark - Composants

Apache Spark utilise une architecture en couches, comportant plusieurs

composants, dont l'objectif est de permettre de r aliser des traitements

performants tout en promettant un d veloppement et une int gration facilit es. Il

est n la base pour pallier les probl mes pos s par Hadoop Map Reduce, mais

est devenu une entit lui seul, offrant bien plus que le traitement par lot

classique.

1 [#fn:DataFlair]

Voici les composants de Spark:

1. Spark Core

Publicité

Spark Core est le point central de Spark, qui fournit une plateforme

d'ex cution pour toutes les applications Spark. De plus, il supporte un large

ventail d'applications.

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

2/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

2. Spark SQL

Spark SQL se situe au dessus de Spark, pour permettre aux utilisateurs

d'utiliser des requ tes SQL/HQL. Les donn es structur es et semi-

structur es peuvent ainsi tre trait es gr ce Spark SQL, avec une

performance am lior e.

3. Spark Streaming

Spark Streaming permet de cr er des applications d'analyse de donn es

interactives. Les ux de donn es sont transform s en micro-lots et trait s

par dessus Spark Core.

4. Spark MLlib

La biblioth que de machine learning MLlib fournit des algorithmes de haute

qualit pour l'apprentissage automatique. Ce sont des libraries riches, tr s

utiles pour les data scientists, autorisant de plus des traitements en

m moire am liorant de fa on drastique la performance de ces algorithmes

sur des donn es massives.

5. Spark GraphX

Spark Graphx est le moteur d'ex cution permettant un traitement scalable

utilisant les graphes, se basant sur Spark Core.

Architecture de Spark

Les applications Spark s'ex cutent comme un ensemble ind pendant de

processus sur un cluster, coordonn s par un objet SparkContext dans le

programme principal, appel driver program.

2 [#fn:Architecture]

Pour s'ex cuter sur un cluster, SparkContext peut se connecter plusieurs types

de gestionnaires de clusters (Cluster Managers):

Sur

le

gestionnaire

autonome

de

Spark

, qui est inclus

dans Spark, et qui pr sente le moyen le plus rapide et simple de mettre en

Publicité

place un cluster.

Sur Apache Mesos

, un gestionnaire de cluster g n ral qui peut aussi tourner sur

Hadoop Map Reduce.

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

3/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

Sur Hadoop YARN

, le gestionnaire de ressources de Hadoop 2.

Sur

Kubernetes

, un syst me open-source pour

l'automatisation du

d ploiement et la gestion des applications conteneuris es.

Ces gestionnaires permettent d'allouer

les ressources n cessaires pour

l'ex cution de plusieurs applications Spark. Une fois connect , Spark lance des

ex cuteurs sur les noeuds du cluster, qui sont des processus qui lancent des

traitements et stockent des donn es pour les applications. Il envoie ensuite le

code de l'application (dans un chier JAR ou Python) aux ex cuteurs. Spark

Context envoie nalement les t ches ex cuter aux ex cuteurs.

Il est noter que:

Chaque application a son lot d'ex cuteurs, qui restent actifs tout au long de

l'ex cution de l'application, et qui lancent des t ches sur plusieurs threads.

Ainsi, les applications sont isol es les unes des autres, du point de vue de

l'orchestration (chaque driver ex cute ses propres t ches), et des ex cuteurs

(les t ches des diff rentes applications tournent sur des JVM diff rentes).

Ceci implique galement que les applications (ou Jobs) Sparks ne peuvent

pas changer des donn es, sans les enregistrer sur un support de stockage

externe.

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

4/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

Spark est ind pendant du gestionnaire de cluster sous-jacent. Il sut de

congurer Spark pour utiliser ce gestionnaire, il peut g rer ses ressources en

m me temps que d'autres applications, m me non-Spark.

L'application principale (driver) doit tre l' coute des connexions entrantes

venant de ses ex cuteurs.

Publicité

Caract ristiques de Spark

Spark est connu pour avoir plusieurs caract ristiques qui en font l'une des

plateformes les plus utilis es dans le domaine des Big Data. Nous citons:

1 [#fn:DataFlair]

Performance de traitement: Il est possible de r aliser une vitesse de

traitement tr s lev e avec Spark sur des chiers volumineux qui peut tre

jusqu' 100x meilleur que Hadoop Map Reduce, par exemple, et ceci gr ce

des m canismes tel que la r duction du nombre de lectures critures sur le

disque,

la valorisation du traitement en m moire et

l'utilisation des

m moires cache et RAM pour les donn es interm diaires.

Dynamicit : Il est facile de d velopper des applications parall les, gr ce aux

op rateurs haut niveau fournis par Spark (allant jusqu' 80 op rateurs).

Tol rance aux Fautes: Apache Spark fournit un m canisme de tol rance aux

fautes gr ce aux RDD. Ces structures en m moire sont con ues pour

r cup rer les donn es en cas de panne.

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.

valuations Paresseuses (Lazy Evaluations): Toutes les transformations

faites sur Spark RDD sont paresseuses de nature, ce qui veut dire qu'elles ne

donnent pas de r sultat direct apr s leur ex cution, mais g n rent un nouvel

RDD partir de l'ancien. On n'ex cute effectivement les transformations

qu'au moment de lancer une action sur les donn es. Nous allons d tailler

cet aspect plus tard dans le cours.

Support de plusieurs langages: Plusieurs langages de programmation sont

support s par Spark, tel que Java, R, Scala et Python.

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

5/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

Une communaut active et en expansion: Des d veloppeurs de plus de 50

entreprises sont impliqu s dans le d veloppement et l'am lioration de

Spark. Ce projet a t initi en 2009 et est encore en expansion.

Support d'analyses sophistiqu es: Spark est fourni avec un ensemble

d'outils d di s pour le streaming, les requ tes interactives, le machine

learning, etc.

Int gration avec Hadoop: Spark peut s'ex cuter ind pendamment ou sur

Hadoop YARN, et proter ainsi de la puissance du syst me de chiers

Publicité

distribu Hadoop HDFS.

Limitations de Spark

Spark a plusieurs limitations, tel que :

1 [#fn:DataFlair]

Pas de support pour le traitement en temps r el: Spark permet le traitement

en temps-presque-r el, car il utilise le traitement en micro-lot plut t que le

traitement en streaming.

Probl mes avec les chiers de petite taille: Spark partitionne le traitement

sur plusieurs ex cuteurs, et est optimis principalement pour les grands

volumes de donn es. L'utiliser pour des chiers de petite taille va rajouter un

co t suppl mentaire, il est donc plus judicieux dans ce cas d'utiliser un

traitement s quentiel classique sur une seule machine.

Pas de syst me de gestion des chiers: Spark est principalement un

syst me de traitement, et ne fournit pas de solution pour le stockage des

donn es. Il doit donc se baser sur d'autres syst mes de stockage tel que

Hadoop HDFS ou Amazon S3.

Co teux: En tant que syst me de traitement en m moire, le co t d'ex cuter

Spark sur un cluster peut tre tr s lev en terme de consommation

m moire.

Nombre d'algorithmes limit : Malgr la disponibilit de la biblioth que

MLlib, elle reste limit e en termes de nombre d'algorithmes impl ment s.

Latence: La latence de Spark pour l'ex cution de Jobs la vol e est plus

lev e que d'autres solutions de traitement en streaming tel que Flink

.

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

6/7

3/20/2021

P2 - Introduction Apache Spark - Atelier Apache Spark

R f rences

1. Data Flair, Spark Tutorial: Learn Spark Programming, https://data-air.training/blogs/spark-tutorial/

, consult le 02/2020

2. Spark Documentation, Cluster Mode Overview, https://spark.apache.org/docs/latest/cluster-

overview.html , consult le 02/2020

https://liliasfaxi.github.io/Atelier-Spark/p2-spark/

7/7