Présentation d'Apache Spark
- Historique du Framework.
- Les différentes versions de Spark (Scala, Python et Java).
- Comparaison avec l'environnement Apache Hadoop.
- Les différents modules de Spark.
Travaux pratiques
Installation et configuration de Spark. Exécution d'un premier exemple avec le comptage de mots.
Programmer avec les Resilient Distributed Dataset (RDD)
- Présentation des RDD.
- Créer, manipuler et réutiliser des RDD.
- Accumulateurs et variables broadcastées.
- Utiliser des partitions.
Travaux pratiques
Manipulation de différents Datasets à l'aide de RDD et utilisation de l'API fournie par Spark.
Manipuler des données structurées avec Spark SQL
- SQL, DataFrames et Datasets.
- Les différents types de sources de données.
- Interopérabilité avec les RDD.
- Performance de Spark SQL.
- JDBC/ODBC server et Spark SQL CLI.
Travaux pratiques
Manipulation de Datasets via des requêtes SQL. Connexion avec une base externe via JDBC.
Spark sur un cluster
- Les différents types d'architecture : Standalone, Apache Mesos ou Hadoop YARN.
- Configurer un cluster en mode Standalone.
- Packager une application avec ses dépendances.
- Déployer des applications avec Spark-submit.
- Dimensionner un cluster .
Travaux pratiques
Mise en place d'un cluster Spark.
Analyser en temps réel avec Spark Streaming
- Principe de fonctionnement.
- Présentation des Discretized Streams (DStreams).
- Les différents types de sources.
- Manipulation de l'API.
- Comparaison avec Apache Storm.
Travaux pratiques
Consommation de logs avec Spark Streaming.
Manipuler des graphes avec GraphX
- Présentation de GraphX.
- Les différentes opérations.
- Créer des graphes.
- Vertex and Edge RDD.
- Présentation de différents algorithmes.
Travaux pratiques
Manipulation de l'API GraphX à travers différents exemples.
Machine Learning avec Spark
- Introduction au Machine Learning.
- Les différentes classes d'algorithmes.
- Présentation de SparkML et MLlib.
- Implémentations des différents algorithmes dans MLlib.
Travaux pratiques
Utilisation de SparkML et MLlib.