Développé par | Apache Software Foundation |
---|---|
Première version | [1] |
Dernière version | 2.3.0 ()[2] |
Dépôt | git-wip-us.apache.org/repos/asf/storm.git |
Écrit en | Clojure et Java |
Type |
Calcul distribué Big data |
Licence | Licence Apache |
Site web | storm.apache.org |
Apache Storm est un framework de calcul de traitement de flux distribué, écrit principalement dans le langage de programmation Clojure. Créé à l'origine par Nathan Marz [3] et l'équipe de BackType [4] le projet est rendu open source après avoir été acquis par Twitter[5]. Il utilise des "spouts" et des "bolts" créés sur mesure pour définir les sources d'informations et les manipulations permettant un traitement par lots et distribué des données en continu. La première publication a eu lieu le [6].
Une application Storm est conçue comme une "topologie" sous la forme d'un graphe orienté acyclique (DAG) avec des spouts et des bolts faisant office de sommets du graphe. Les arêtes du graphe sont des flux nommés et dirigent les données d'un nœud à un autre. Ensemble, la topologie agit comme un pipeline de transformation de données. À un niveau superficiel, la structure topologique générale est similaire à un travail MapReduce , la principale différence étant que les données sont traitées en temps réel par opposition à des lots individuels. De plus, les topologies Storm s'exécutent indéfiniment jusqu'à ce qu'elles soient supprimées, tandis qu'un DAG de travail MapReduce doit finir[7].
Storm est devenu un projet de niveau supérieur Apache en [8] et était auparavant en incubation depuis [9],[10].
Storm n'est que l'un des dizaines de moteurs de traitement de flux. Pour une liste plus complète, voir Traitement de flux. Twitter a annoncé Heron le [11] API compatible avec Storm. Il existe d'autres moteurs de données en continu comparables, tels que Spark Streaming et Flink[12].