Spark Java, développer des applications pour le Big Data (4 jours)

Souvent présenté comme le successeur de Hadoop, SPARK simplifie la programmation des traitements Big Data permettant l'utilisation de scala, Python ou Java . Cette formation apprendra aux programmeurs à traiter un flux de données en temps réel et à effectuer des traitements batch (du SQL jusqu'au Machine Learning).

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Maîtriser les concepts fondamentaux de Spark
  • Développer des applications avec Spark Streaming
  • Mettre en œuvre un cluster Spark
  • Exploiter des données avec Spark SQL
  • Optimiser les traitements avec Spark
  • Avoir une première approche du Machine Learning

Prérequis

  • Bonnes connaissances du langage Java.
  • Connaissances en Big Data

Datasets des ateliers pratiques

  • Les arbres remarquables de Paris. Il provient de http://opendata.paris.fr. Chaque ligne décrit un arbre : position GPS, arrondissement, genre, espèce, famille, année de plantation, hauteur, circonférence, etc.
  • Les archives météorologiques de stations placées dans le monde entier. Ils sont collectés par le National Climatic Data Center (NCDC) qui dépend de la National Oceanic and Atmospheric Administration (NOAA).

Programme de la formation

1. [BEGINNER] Présentation d'Apache Spark

  • Historique du Framework.

2. [BEGINNER] 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.

3. [BEGINNER] 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.
  • JDBC/ODBC server et Spark SQL CLI.

Travaux pratiques: Manipulation de Datasets via des requêtes SQL. Connexion avec une base externe via JDBC.

4. [BEGINNER + CONFIRMED] 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.

5. [CONFIRMED] 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.

6. [CONFIRMED] 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.

7. [EXPERT] Optimiser les jobs Spark

  • DAG, YARN, TUNING.
  • L'analyse du DAG via Spark-UI.
  • Optimiser les performances : méthodes et outils.
  • Pattern d'optimisation.
  • Cache et persistance.
  • Impact de la localité des données sur les performances.

Travaux pratiques: Optimisation des jobs spark à travers différents exemples.

8. [EXPERT] 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.

Modalités pratiques

Travaux pratiques: Mise en pratique des notions vues en cours à l'aide du langage Java.

Modalités d'évaluation

Le formateur évalue la progression pédagogique du participant tout au long de la formation au moyen de QCM, mises en situation, travaux pratiques…

Le participant complète également un test de positionnement en amont et en aval pour valider les compétences acquises.