AJC FORMATION : 11. Spark, développer des applications pour le Big Data
Organisme
75009 PARIS 9Voir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Evaluation des acquis : Les apprenants réalisent tout au long de la formation des exercices, QCM, mises en situation, TP, TD qui seront corrigés pour faciliter l’acquisition de compétences
Prix
Public
Chefs de projet, Data Scientists, Développeurs, Architectes…
Pré-requis
Avoir des connaissances de Java ou Python et des notions de calculs statistiques
Objectifs pédagogiques
Maîtriser les concepts fondamentaux de Spark
Savoir intégrer Spark dans un environnement Hadoop
Développer des applications d’analyse en temps réel avec Spark Streaming
Faire de la programmation parallèle avec Spark sur un cluster
Manipuler des données avec Spark SQL
Avoir une première approche du Machine Learning
Programme détaillé
Introduction et motivations pour Apache Spark
▪ L’écosystème Spark
▪ Spark vs. Hadoop
▪ Obtenir et installer Spark
▪ La console Spark, et SparkContext
Travaux pratiques :
▪ Mettre en place l’environnement de lab
▪ Démarrer l’interpréteur Scala
▪ Premiers pas avec Apache Spark
▪ Premiers pas avec la console Spark
Introduction des RDDs
▪ Les concepts de RDD, de cycle de vie, et de l’évaluation paresseuse.
▪ Travailler avec des RDDs : création et transformations (map, filter, etc.)
▪ Partitionnement et transformation des RDDs
▪ Transformations avancées (flatMap, explode, et split)
Introduction des DataFrames et DataSets
▪ Le concept de SparkSession
▪ Création et inférence de schéma
▪ Identification des formats supportés (dont JSON, CSV, Parquet, Text ...)
▪ Travailler avec l’API DataFrame
▪ Travailler avec l’API DataSet
▪ Transformations via des requêtesSQL (Spark SQL)
Comparaison entre les DataSets, DataFrames et RDDs
Travaux pratiques :
▪ Les bases des RDD
▪ Opérations sur de multiples RDDs
▪ Les formats de données
▪ Les bases de Spark SQL
▪ Transformation de DataFrames
▪ L’API typée des DataSets
▪ Fractionner les données
Optimisations
▪ Shuffling, dépendances larges et étroites, et leur impact sur la performance
▪ L’optimiseur de requêtes Catalyst
▪ L’optimiseur Spark Tungsten (format binaire, gestion du cache…)
▪ Le caching Spark (concept, type de cache, recommandations)
▪ Minimiser le shuffling pour améliorer la performance
▪ Utilisation de la diffusion de variables et de l’accumulateur
Recommandations globales de performances
▪ L’interface Spark UI
▪ Les transformations efficaces
▪ Stockage de données
▪ Monitoring
Travaux pratiques :
▪ Comprendre le Shuffling
▪ Explorer l’optimiseur de requête Catalyst
▪ Explorer l’optimiseur Tungsten
▪ Travailler avec la mise en cache, le shuffling et la diffusion de variables
▪ Recommandations générales sur le broadcast
Les applications Spark
▪ Configurer et créer une SparkSession
▪ Construire et lancer des applications
▪ Cycle de vie des applications (Driver, Executors, et Tasks)
▪ Les modes d’executions (Standalone, YARN, Mesos)
▪ Logging et Debugging
Introduction au temps réel
▪ Spark Streaming (Spark 1.0+)
– DStreams, Receivers, Batching
– Transformations Stateless
– Transformations Windowed
– Transformations Stateful
▪ Structured Streaming (Spark 2+)
– Applications en continue
– Le paradigme de Table, et de Result Tables
– Les étapes du structured streaming
– Les sources et puits
– Introduction de Kafka
– Consommer des données Kafka
– Le Structured Streaming au format "kafka"
– Traitement du Stream
Travaux pratiques :
▪ Déclencher des jobs Spark
▪ Capacités additionnelles de Spark
▪ Spark Streaming
▪ Spark Structured Streaming
▪ Spark Structured Streaming avec Kafka