Apache Storm - Apache Storm
|
Verteilte und fehlertolerante Echtzeitberechnung
| |
| Entwickler | Backtype, Twitter |
|---|---|
| Stabile Version | 2.2.0 / 30. Juni 2020
|
| Repository | Storm Repository |
| Geschrieben in | Clojure & Java |
| Betriebssystem | Plattformübergreifend |
| Art | Verteilte Stream-Verarbeitung |
| Lizenz | Apache License 2.0 |
| Webseite | Sturm |
Apache Storm ist ein Framework für die verteilte Stream-Verarbeitung, das überwiegend in der Programmiersprache Clojure geschrieben wurde. Das Projekt wurde ursprünglich von Nathan Marz und dem Team von BackType erstellt und war Open Source, nachdem es von Twitter übernommen wurde. Es verwendet benutzerdefinierte "Ausläufe" und "Bolzen", um Informationsquellen und Manipulationen zu definieren, die eine verteilte Stapelverarbeitung von Streaming-Daten ermöglichen. Die Erstveröffentlichung erfolgte am 17. September 2011.
Eine Storm-Anwendung ist als "Topologie" in Form eines gerichteten azyklischen Graphen (DAG) mit Ausgüssen und Bolzen als Scheitelpunkte des Graphen konzipiert. Kanten im Diagramm werden als Streams bezeichnet und leiten Daten von einem Knoten zum anderen. Zusammen fungiert die Topologie als Datentransformationspipeline. Auf oberflächlicher Ebene ähnelt die allgemeine Topologiestruktur einem MapReduce- Job, mit dem Hauptunterschied, dass Daten in Echtzeit und nicht in einzelnen Stapeln verarbeitet werden. Darüber hinaus werden Storm-Topologien unbegrenzt ausgeführt, bis sie getötet werden, während eine MapReduce-Job-DAG schließlich beendet werden muss.
Storm wurde im September 2014 zu einem Apache-Top-Level-Projekt und war zuvor seit September 2013 in Inkubation .
Entwicklung
Apache Storm wurde unter der Apache-Lizenz entwickelt und steht den meisten Unternehmen zur Verfügung. Git wird für die Versionskontrolle und Atlassian JIRA für die Problemverfolgung unter dem Apache Incubator-Programm verwendet.
| Ausführung | Veröffentlichungsdatum |
|---|---|
| 2.2.0 | 30. Juni 2020 |
| 2.1.0 | 6. September 2019 |
| 1.2.3 | 18. Juli 2019 |
| 2.0.0 | 30. Mai 2019 |
| 1.1.4 | 8. Januar 2019 |
| 1.2.2 | 4. Juni 2018 |
| 1.1.3 | |
| 1.0.7 | 3. Mai 2018 |
| 1.2.1 | 19. Februar 2018 |
| 1.2.0 | 15. Februar 2018 |
| 1.1.2 | |
| 1.0.6 | 14. Februar 2018 |
| 1.0.5 | 15. September 2017 |
| 1.1.1 | 1. August 2017 |
| 1.0.4 | 28. Juli 2017 |
| 1.1.0 | 29. März 2017 |
| 1.0.3 | 14. Februar 2017 |
| 0,10,2 | 14. September 2016 |
| 0.9.7 | 7. September 2016 |
| 1.0.2 | 10. August 2016 |
| 1.0.1 | 6. Mai 2016 |
| 0.10.1 | 5. Mai 2016 |
| 1.0.0 | 12. April 2016 |
| 0,10,0 | 5. November 2015 |
| 0.9.6 | |
| 0.9.5 | 4. Juni 2015 |
| 0.9.4 | 25. März 2015 |
| 0.9.3 | 25. November 2014 |
| 0.9.2 | 25. Juni 2014 |
| 0.9.1 | 10. Februar 2014 |
| Historische (Nicht-Apache) Version | Veröffentlichungsdatum |
| 0.9.0 | 8. Dezember 2013 |
| 0.8.2 | 11. Januar 2013 |
| 0.8.1 | 6. September 2012 |
| 0.8.0 | 2. August 2012 |
| 0.7.0 | 28. Februar 2012 |
| 0.6.0 | 15. Dezember 2011 |
| 0,5,0 | 19. September 2011 |
Apache Storm Architektur
Der Apache Storm-Cluster besteht aus folgenden kritischen Komponenten:
- Knoten - Es gibt zwei Arten von Knoten: Masterknoten und Arbeiterknoten. Ein Master-Knoten führt einen Daemon- Nimbus aus, der Maschinen Aufgaben zuweist und deren Leistung überwacht. Auf der anderen Seite führt ein Worker-Knoten den Daemon Supervisor aus, der die Aufgaben anderen Worker-Knoten zuweist und sie nach Bedarf betreibt. Da Storm den Status und den Zustand des Clusters nicht überwachen kann, setzt es ZooKeeper ein, um dieses Problem zu lösen, das Nimbus mit den Supervisors verbindet.
- Komponenten - Storm besteht aus drei kritischen Komponenten: Topologie, Stream und Auslauf. Topologie ist ein Netzwerk aus Stream und Spout. Stream ist eine unbegrenzte Pipeline von Tupeln, und Spout ist die Quelle der Datenströme, die die Daten in Tupel von Streams konvertieren und an die zu verarbeitenden Bolzen senden.
Peer-Plattformen
Storm ist nur eine von Dutzenden von Stream-Verarbeitungs-Engines. Eine vollständigere Liste finden Sie unter Stream-Verarbeitung . Twitter kündigte Heron am 2. Juni 2015 an, das API-kompatibel mit Storm ist. Es gibt andere vergleichbare Streaming-Daten-Engines wie Spark Streaming und Flink .
Siehe auch
- C ++ AMP
- Datenparallelität
- Lambda-Architektur
- Nachrichtenübermittlung
- OpenMP
- OpenCL
- OpenHMPP
- Paralleles Rechnen
- TPL
- Thread (Computing)