Spark : traitement de données
Programme
Introduction
- Présentation Spark
- Origine du projet
- Apports
- Principe de fonctionnement
- Langages supportés
Premiers pas
- Utilisation du shell Spark avec Scala ou Python
- Modes de fonctionnement
- Interprété, compilé
- Utilisation des outils de construction
- Gestion des versions de bibliothèques
Règles de développement
- Mise en pratique en Java, Scala et Python
- Notion de contexte Spark
- Différentes méthodes de création des RDD : depuis un fichier texte, un stockage externe
- Manipulations sur les RDD (Resilient Distributed Dataset)
- Fonctions, gestion de la persistence
Cluster
- Différents cluster managers : Spark en autonome, avec Mesos, avec Yarn, avec Amazon EC2
- Architecture : SparkContext, Cluster Manager, Executor sur chaque noeud
- Définitions : Driver program, Cluster manager, deploy mode, Executor, Task, Job
- Mise en oeuvre avec Spark et Amazon EC2
- Soumission de jobs, supervision depuis l’interface web
Traitements
- Lecture/écriture de données : Texte, JSon, Parquet, HDFS, fichiers séquentiels
- Jointures
- Filtrage de données, enrichissement
- Calculs distribués de base
- Introduction aux traitements de données avec map/reduce
- Travail sur les RDDs
- Transformations et actions
- Lazy execution
- Impact du shuffle sur les performances
- RDD de base, key-pair RDDs
- Variables partagées : accumulateurs et variables broadcast
Intégration hadoop
- Présentation de l’écosystème Hadoop de base : HDFS/Yarn
- Travaux pratiques avec YARN
- Création et exploitation d’un cluster Spark/YARN
- Intégration de données sqoop, kafka, flume vers une architecture Hadoop
- Intégration de données AWS S3
Support Cassandra
- Description rapide de l’architecture Cassandra
- Mise en oeuvre depuis Spark
- Exécution de travaux Spark s’appuyant sur une grappe Cassandra
DataFrames
- Spark et SQL
- Objectifs : traitement de données structurées
- L’API Dataset et DataFrames
- Optimisation des requêtes
- Mise en oeuvre des Dataframes et DataSet
- Comptabilité Hive
- Travaux pratiques: extraction, modification de données dans une base distribuée
- Collections de données distribuées
- Exemples.
Streaming
- Objectifs , principe de fonctionnement : stream processing
- Source de données : HDFS, Flume, Kafka, …
- Notion de StreamingContexte, DStreams, démonstrations
- Travaux pratiques : traitement de flux DStreams en Scala
Machine Learning
- Fonctionnalités : Machine Learning avec Spark, algorithmes standards, gestion de la persistence, statistiques
- Support de RDD
- Mise en oeuvre avec les DataFrames
Spark GraphX
- Fourniture d’algorithmes, d’opérateurs simples pour des calculs statistiques sur les graphes
- Travaux pratiques : exemples d’opérations sur les graphes