Unternehmen, die eigene Big-Data-Umgebungen aufbauen wollen, sollten einen Blick auf Apache Storm werfen: Das fehlertolerante und skalierbare System gehört zu den bekanntesten Big-Data-Lösungen im Open-Source-Bereich und hat sich auf die Fahnen geschrieben, Daten in Echtzeit zu verarbeiten. Überdies erlaubt Storm die Ausgabe von Daten, während die Berechnung im Hintergrund weiterläuft.
Die Idee für Storm ist ursprünglich im Umfeld von Twitter entstanden, erst später wurde das Projekt an die Apache Software Foundation übergeben – was sich auch an den Schwerpunkten der Lösung bemerkbar macht. Storm-Erfinder Nathan Marz wollte mit seiner Big Data-Lösung insbesondere drei zentrale Einsatzszenarien im Umfeld sozialer Datenbanken abdecken:
- Ein auf der Echtzeitverarbeitung von Daten basierendes Aktualisieren von Datenbanken,
- die fortlaufende Berechnung und Ausgabe der Ergebnisse (Continuous Computation),
- das Parallelisieren rechenintensiver Anfragen mithilfe verteilter Remote Procedure Calls (RPCs).
Als Teil des Hadoop-Ökosystems ist Storm für die Echtzeit-Datenverarbeitung damit in etwa das, was Hadoop für das Batch-Processing ist.
Daten in Echtzeit auswerten
Das Einsatzgebiet von Storm ist der latenzsensitive Bereich der Echtzeitdatenverabeitung: Storm ist das Mittel der Wahl, wenn Entscheidungen im Millisekundenbereich getroffen werden müssen, ohne dass darauf gewartet werden kann, dass z.B. ein klassischer Batch Job ein Ergebnis liefert.Ein typischer Anwendungsfall ist die Analyse von Clickstreams im Retailbereich. Storm kann hier mit wenig Hardware bereits eine große Anzahl an Tuples mit geringen Latenzen verarbeiten. Dabei garantiert Storm mithilfe eines Acknowlegement-Algorithmus, dass im verteilten Einsatz keine Nachrichten verloren gehen und jedes Tuple verarbeitet wird. Geht ein Tuple z.B. durch einen Netzwerkfehler verloren, wird es automatisch erneut gesendet.
Auch für Auswertungen von Daten aus sozialen Netzwerken eignet sich Storm sehr gut: so lassen sich riesige Mengen an Twitter-Nachrichten analysieren und mit anderen Informationen in Beziehung setzen. Dadurch sind z.B. Aussagen über die Entwicklung von Börsenkursen anhand der Stimmung im Social Web möglich.
Vorteile, die der Einsatz von Storm mit sich bringt
- die Echtzeitanalyse von Daten,
- eine einfach und überschaubar aufgebaute API,
- ein geringer Aufwand, um mit nahezu jeder beliebigen Programmiersprache auf das Analysesystem zuzugreifen.
Ausfallsicherheit: Work Threads werden automatisch neu gestartet
Ein weiterer Vorteil von Storm ist die Ausfallsicherheit. So werden Work Threads auf den Nodes automatisch vom Master Node neu gestartet, falls dort ein Fehler auftritt. Des Weiteren findet ein automatisches Loadbalancing zwischen einzelnen (gleichen) Nodes statt. Durch das Hinzufügen von Worker-Nodes bietet Storm zudem eine einfache vertikale Skalierbarkeit. Dazu ist es allerdings erforderlich, dass die Topologie neu gestartet wird. Das Hinzufügen „on-the-fly“ ist derzeit noch nicht möglich.Diese Artikel könnten Sie auch interessieren:
- 10 Big Data-Technologien, die Sie kennen sollten
- Apache Hadoop – ein bewährtes Open Source-Framework
- Apache Hive – das Data Warehouse für Hadoop
- Cloudera Impala – die Lösung für Echtzeitabfragen
- MongoDB – Die Datenbank für alle Fälle
- Pentaho – Flexible Business Intelligence-Plattform
- Infobright – MySQL-Engine mit effektiver Datenkompression
- Apache Spark – Framework für Echtzeitanalysen
- Splunk – Big Data vereinfachen
- Hadoop Yarn – Big Data beschleunigen