Storm

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Traitement de flux de données en temps réel
Coordination Zookeeper
Complète Hadoop (traitement par lots)
Voir aussi Hadoop · Zookeeper

Apache Storm est un système de traitement de flux de données en temps réel (stream processing) : contrairement à Hadoop/MapReduce qui traite des données déjà stockées par lots (batch), Storm traite des flux continus d'événements au fil de l'eau, avec une latence de l'ordre de la milliseconde à la seconde.

Une topologie Storm est un graphe de traitement composé de :

  • Spouts — sources de données (file de messages, capteurs, flux réseau...).
  • Bolts — unités de traitement qui consomment le flux d'un spout ou d'un autre bolt
 (filtrage, agrégation, écriture en base...).

Le système garantit la tolérance aux pannes (fault tolerance) du traitement : en cas d'échec d'un nœud, les tuples de données en cours de traitement sont réémis plutôt que perdus.

Storm s'appuie sur Zookeeper pour la coordination du cluster (état des workers, répartition des tâches).

(à vérifier/contextualiser : à l'heure actuelle, Storm a largement cédé du terrain face à des moteurs de streaming plus récents comme Apache Flink ou Spark Streaming, notamment pour la gestion d'état et le débit — un choix pour un nouveau projet mérite une comparaison à jour plutôt qu'un choix par défaut sur Storm.)

Voir aussi

  • Hadoop — traitement par lots complémentaire
  • Zookeeper — coordination du cluster Storm