Login
Newsletter
Werbung

Fr, 5. August 2011, 13:40

Software::Branchenlösungen

Twitters Storm wird Open Source

Twitter möchte sein Stream-Verarbeitungssystem Storm unter einer Open-Source-Lizenz veröffentlichen. Storm ging an Twitter, als der Microblogging-Dienst den Echtzeitanalysespezialisten Backtype kaufte.

Storm ist ein skalierbares, fehlertolerantes System, das Datenströme in Echtzeit verarbeiten kann. Backtype hatte bei der Entwicklung drei große Einsatzszenarien für soziale Netzwerke vor Augen: Nachrichten verarbeiten und darauf basierend Datenbanken aktualisieren, kontinuierliche Berechnungen und Ausgabe der Ergebnisse sowie verteilte Remote Procedure Calls, um rechenintensive Anfragen zu parallelisieren. Letztere treten bei Twitter beispielsweise dann auf, wenn festgestellt werden soll, wie viele Nutzer ein Tweet erreichen kann. Dazu wird festgestellt, wie viele Personen eine URL getwittert haben und wie viele Menschen ihnen folgen. Anschließend wird das Ergebnis von mehrfachen Einträgen befreit.

Storm wurde in Clojure implementiert, läuft in der Java Virtual Machine und ist laut den Entwicklern leicht zu programmieren. Dabei kann, unter Umständen mit wenig Aufwand, von jeder beliebigen Programmiersprache aus auf das Analysesystem zugegriffen werden. Ruby und Python werden bereits unterstützt, für andere Programmiersprachen sind zwischen einer und 100 Codezeilen erforderlich, um Storm zu einem Zusammenspiel zu überreden. Storm ist horizontal skalierbar und wird in JAR-Containern ausgeführt, die sich in einem Cluster auf verschiedenen Rechnern verteilen lassen. Ein Überwachungsmechanismus sorgt dafür, dass abgestürzte Worker-Threads neu gestartet werden. Das Analytic-System garantiert, dass eine Nachricht erst aus der Warteschlange gelöscht wird, wenn sie ohne Fehlermeldungen verarbeitet wurde (at least once). Um Nachrichten zu transportieren, nutzt Storm ZeroMQ, was eine schnelle Verarbeitung sicherstellen soll.

Ein Storm-Cluster besteht aus Master- und Worker-Knoten sowie einem Zookeeper-Cluster und ähnelt einem Hadoop-Cluster. Anstelle der Map-Reduce-Jobs stehen in Storm jedoch Topologien. Auf dem Master läuft der Daemon »Nimbus«, der den Storm-Code auf die einzelnen Workernodes verteilt, ihnen Nachrichten zuordnet und darüber wacht, dass sich keiner der Worker unbemerkt verabschiedet. Auf den Worker-Knoten läuft der Daemon »Supervisor«, der für die Verarbeitung der empfangenen Nachrichten zuständig ist. Der Zookeeper-Cluster befindet sich zwischen Master und Worker, koordiniert Abläufe und speichert ggf. Zustände. So können Nimbus oder Supervisor ausfallen und nach einem Neustart mit der Datenverarbeitung fortfahren, als ob nichts gewesen wäre.

Bis Storm für alle Interessierten zugänglich ist, werden noch einige Wochen vergehen. Twitter plant, Storm am 19. September auf der Strange Loop in St. Louis zu veröffentlichen.

Werbung
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung