Big Data in Echtzeit

Große Datenmengen in Echtzeit verarbeiten mit Apache Storm 1.0.0

Melanie Feldmann

© Shutterstock / Vasin Lee

MapReduce und Hadoop haben die Verarbeitung von großen Datenmengen revolutioniert. Was diese Technologien aber nicht leisten können ist Daten in Echtzeit zu verarbeiten. Dieses Ziel hat sich das Apache-Projekt Storm auf die Fahne geschrieben und macht mit der Version 1.0.0 jetzt den offiziellen Schritt in die Öffentlichkeit.

Apache Storm ermöglicht die Echtzeitverarbeitung von Streaming-Daten. Die Entwickler beschreiben es als „distributed computation framework“. Einsatzszenarien für das Tool sind Echtzeitanalysen, Maschinelles Lernen und Continuous Computation. Storm lässt sich mit jedem Queuing-System und jeder Datenbank verbinden. Außerdem kann es mit jeder Programmiersprache genutzt werden.

Storm kann Messages verarbeiten und Datenbanken aktualisieren (Stream Processing). Es kann kontinuierliche Queries auf Data Streams laufen lassen und die Ergebnisse Clients zur Verfügung stellen (Continuous Computation). Und es parallelisiert Intense Queries wie Search Queries on the fly (Distributed RPC). Das Framework ist für eine massive Anzahl an Messages skalierbar. Eine von Storms ersten Anwendungen verarbeitete eine Millionen Messages pro Sekunde auf einem Zehn-Knoten-Cluster, inklusive hunderten von Datenbank-Aufrufen. Für die Koordination der Cluster nutzt Storm Zookeeper. Die Entwickler versprechen außerdem, dass Storm keine Daten verliert. Auch wenn die Verarbeitung beim ersten Versuch fehlgeschlagen ist, geht keine Information verloren. Die Berechnungen können für immer laufen – oder bis der Anwender sie beeendet.

Das bringt die Version 1.0.0

Mit der Version 1.0.0 hat das Projekt nicht nur einen symbolischen Schritt getan. 1.0 soll bis zu 16 mal schneller sein als die Vorgängerversion. Die Latenz sei um bis zu 60 Prozent geringer. Da die Verarbeitungsgeschwindigkeit je nach Anwendungsfall und externen Services variieren kann, wird nicht jeder in den vollen Genuss des Geschwindigkeitsschubs kommen. Für die meisten Anwendungen versprechen die Entwickler eine dreimal schnellere Performance im Vergleich zu älteren Versionen.

In der Vergangenheit war es für Entwickler üblich Ressourcen zu bündeln, die von einer Topologie (wie Lookup-Daten, Modelle für Maschinelles Lernen) gebraucht wurden. Ein Problem dabei war, dass bei einem Update der Daten das gesamte Paket neu zusammengestellt und deployt werden musste. Da die Pakete oft mehrere Gigabytes groß sind, hatte dies einen negativen Effekt auf die Startup-Zeit der Topologie. Mit einer Distributed Cache API ist es jetzt möglich, Dateien (BLOBs) zwischen Topologien zu teilen. Diese Dateien können zu jeder Zeit von der Kommandozeile aus aktualisiert werden, ohne einen Redeploy. Die API arbeitet mit Dateien mit Größen von wenigen Kilobytes bis zu mehreren Gigabytes und unterstützt Kompressionsformate wie ZIP und GZIP.

Der Sourcode liegt wie immer auf GitHub. Wie man ein Storm Cluster aufbaut erklären die Entwickler in der Dokumentation. Die Software steht unter der Apache-Lizenz 2.0.

Aufmacherbild: Lightning storm von Shutterstock / Urheberrecht: Vasin Lee

Verwandte Themen:

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: