Formation Storm : Analytique Temps-Réel avec Apache Storm

BigData – Comment traiter des flux de données importants en un éclair avec Storm 

Durée 3 jours
STORM-03

Contactez nous pour planifier
la prochaine session.

Description

Storm est un système distribué de calcul en temps réel, tolérant aux pannes. Il vous permet de réaliser en temps réel ce que Hadoop fait pour le traitement par lots.

Vous commencerez sur un exemple concret à exécuter et à découvrir comment fonctionne Storm. Puis les concepts Storm seront expliqués pour comprendre ce qu'est une topologie Storm ou Trident.

Lors des travaux pratiques, vous apprendrez à coder des Spouts et des Bolts pour créer vos propres topologies.

Vous apprendrez aussi par la pratique à installer et configurer un cluster Storm mono-noeud, et à déployer une topologie.

Objectifs

  • Découvrir les traitements en temps réel avec Storm
  • Comprendre ce qu'est une topologie et les concepts associés
  • Apprendre à comment coder des Spouts et des Bolts pour développer vos propres topologies
  • Comprendre la garantie de traitement des messages et savoir l'implémenter
  • Installer un cluster mono-noeud, et déployer dessus une topologie

Pré-requis : 

  • Langage Java
  • Unix

Public : 

  • Développeur
  • Architecte

Pédagogie : 

50% théorie 50% pratique

Programme

Installer, configurer et déployer un cluster Storm

  • Les composants d’un cluster storm
  • Introduction sur les technologies utilisées par Storm
  • Vue d’ensemble des outils (Storm CLI, Storm UI)

Concepts fondamentaux

  • Introduction aux topologies, spouts et bolts
  • Comprendre la structure et le cycle de vie des spouts et bolts
  • Développer des topologies avec l’API Java
  • Déployer une topologie en mode Local et Remote

Comprendre et contrôler les flux de données

  • Utiliser les stratégies de distribution des données prédéfinies (Shuffle, Field, All)
  • Implémenter ses propres stratégies
  • Travailler avec des flux de données nommés
  • Réaliser des jointures de flux de données

Introduction au parallélisme dans Storm

  • Comprendre l’exécution d’une topologie (Worker, Executor et Task)
  • Comprendre, provisionner et maîtriser la parallélisation d’une topologie
  • Modifier la parallélisation d’une topologie dynamiquement (rebalancing)

Comprendre la fiabilité de traitement des messages

  • Comprendre le mécanisme de suivis des messages (Ackers)
  • Utiliser l’API Java pour traiter des messages de manière fiable

Comprendre l’architecture de Storm

  • Comprendre le rôle de Nimbus, des Supervisors et de Zookeeper
  • Cycle de vie du déploiement d’une topologie
  • Introduction sur la tolérance à la panne
  • Comprendre et configurer la communication interne de Storm

Implémenter les patterns communs aux topologies

  • Utiliser les ticks-tuples pour faire du micro-batching
  • Introduction aux fenêtres glissantes
  • Comprendre l’utilisation des caches et du FieldGrouping

Sérialisation des données et gestion des accès concurrents

  • Le typage dynamique des données
  • La sérialisation d’une topologie
  • Implémenter des sérialiseurs spécifiques avec Kryo

Monitorer l’exécution d’une topologie

  • Utiliser les metrics
  • Superviser les composants d’une topologies avec storm CLI
  • Storm UI

Trident : Implémenter des topologies transactionnelles

  • Introduction aux topologies Trident
  • Les spouts Trident - Non-transactional, Transactional et Opaque Transactional
  • Utiliser les opérations basiques de Filtres et de Fonctions
  • Utiliser les Aggregators, Combiners et les Reducers
  • Comprendre et implémenter des Trident States