Slides Spark
Slides Spark
documentaires et distribuées,
http://b3d.bdpedia.fr
Introduction Ãă Spark
1Cours NFE204
Qu’est-ce que Spark ?
Un moteur d’exécution basé sur des opérateurs de haut niveau, comme Pig.
2
Les Resilient Distributed Datasets (RDD)
C’est le concept central : Un RDD est une collection (pour en rester à notre
vocabulaire) calculée à partir d’une source de données (MongoDB, un flux, un
autre RDD) .
Un RDD peut être marqué comme persistant : il est alors placé en mémoire RAM et
conservé par Spark.
3
Un workflow avec RDD dans Spark
Des transformations (opérateurs comme dans Pig) créent des RDD à partir d’une ou
deux sources de données.
4
Exemple : analyse de fichiers log
On veut analyser le fichier journal (log ) d’une application dont un des modules (M) est
suspect.
On construit un programme qui charge le log, ne conserve que les messsages produits
par le module M et les analyse.
5
Spécification avec Spark
Première phase pour construire logM
// Chargement de la collection
log = load ("app.log") as (...)
// Filtrage des messages du module M
logM = filter log with log.message.contains ("M")
// On rend logM persistant !
logM.persist();
6
Reprise sur panne dans Spark
Un RDD est une collection partitionnée.
7
Dataframes et Datasets
Un RDD, du point de vue du programmeur, c’est un conteneur d’objets java.
Le type précis de ces objets n’est pas connu par Spark. Du coup :
I Tout ce que Spark peut faire, c’est appliquer la sérialisation/désérialisation java
I Aucun accès aux objets grâce à un langage déclaratif n’est possible.
I Et donc pas d’optimisation, et la nécessité de tout écrire sous forme de fonctions
java.
Depuis la version 1.6 : on dispose de RDD améliorés : les Datasets. On peut les traiter
comme des tables relationnelles.