Storm
| 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.)