Recherche avancée
Par formation
Par date
Par ville
logo HUB Formation
Organisme de Formation
aux Technologies et métiers de L'informatique
La pédagogie au service de la technologie
Accueil > éditeurs > Hadoop > Développer des applications pour Apache Spark 2.X avec Python ou Scala

Développer des applications pour Apache Spark 2.X avec Python ou Scala

Formation officielle Hortonworks "DEV 343 - HDP Developer: Spark 2.x Developer"

hadoop

Spark est un framework qui permet d’écrire simplement des applications distribuées complexes qui permettent de prendre des meilleures décisions plus rapidement et des actions en temps réel. Cette formation s’adresse aux développeurs qui souhaitent créer et déployer des applications Big Data complètes et uniques en combinant batchs, le streaming et analyses interactives sur l’ensemble des données. La formation couvre une introduction technique sur l’architecture et le fonctionnement de Spark 2.X, les éléments de base de Spark (e.g. RDDs et calcul distribué), ainsi que les abstractions plus haut niveau qui fournissent une interface plus simple et plus complète (e.g. Spark SQL, les Dataframes, les Datasets). Cette formation traitera également des problèmes de performances et stratégies d’optimisation ainsi que de l’utilisation de Spark streaming pour traiter les données en temps réel.

Objectifs

  • Appréhender le fonctionnement et l’architecture de Spark
  • Développer des applications avec Apache Spark
  • Optimiser une application Spark
  • Utiliser Spark SQL, les dataframes et les datasets
  • Faire de l’analyse en temps réel avec Spark streaming

Public

  • Data Analyste
  • Développeur d'applications in-memory ou avec des contraintes temps réel
  • Ingénieur d’études
  • Architecte technique
  • Chef de projet technique

Prérequis

  • Connaissances de base en programmation ou en scripting (Python/Scala)
  • Expérience basique en ligne de commande
  • Connaissances de base sur Hadoop
  • Connaissances en SQL et conception d'application temps réel utiles mais non obligatoire

Programme de la formation

Introduction au langage Scala

  • Travailler avec les variables, les différents types de données et les structures de contrôles
  • L’interpréteur Scala
  • Les collections et leurs méthodes (e.g. map)
  • Travailler avec les fonctions, les méthodes et les « Function Literals »
  • Définir les concepts suivants relativement au passage à l’échelle : Class, Object, Case Class

Introduction et motivations pour Apache Spark

  • L’écosystème Spark
  • Spark vs. Hadoop
  • Obtenir et installer Spark
  • La console Spark, et SparkContext

Mise en pratique

  • 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êtes SQL (Spark SQL)

Comparaison entre les DataSets, DataFrames et RDDs

Mise en Pratique

  • 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

Mise en Pratique

  • 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"
      • 3Traitement du Stream

Mise en Pratique

  • Déclencher des jobs Spark
  • Capacités additionnelles de Spark
  • Spark Streaming
  • Spark Structured Streaming
  • Spark Structured Streaming avec Kafka