Hooooray … es ist mal wieder soweit: es ist Hackathon-Zeit.

Ready Steady go!

Dieses mal haben wir uns mit dem verteilten Realtime Processing-System Storm befasst. Unser Ziel: Verstehen wie Storm funktioniert und welche Probleme es lösen kann. Unsere Aufgabe: Auswerten des öffentlichen Twitter-Streams um Fragen zu beantworten, wie etwa, welche Client-Software am meisten verwendet wird. Zeit: 8 Stunden.

Was ist eigentlich Storm?

Storm stellt Primitive bereit, um damit Streams in Echtzeit zu analysieren. Also ähnlich wie Hadoop für Batch-Processing verwendet werden kann, so kann Storm für Echtzeit-Analysen verwendet werden. Um das zu bewerkstelligen, entwirft man bei Storm eine so genannte Topologie, welche wiederum aus mehreren Spouts und Bolts besteht. Spouts dienen dabei als Datenquellen, beispielsweise könnte ein Spout einen Twitter-Stream einlesen. Bolts können die Daten von Spouts entgegen nehmen und diese verarbeiten oder umwandeln und dann wieder an andere Bolts weitergeben. Der Einsatzzweck von Bolts ist vielfältig: von Filterung, Aggregation bis hin zum Abspeichern in einer Datenbank ist alles denkbar. Es lassen sich beliebig komplexe Graphen aus Spouts und Bolts bilden, um damit Streaming-Daten beliebig zu verarbeiten. Storm garantiert dabei, dass jede Nachricht die von einem Spout erzeugt wurde, auch komplett verarbeitet wird, sofern man sich an die Spielregeln hält. Mehr zu Storm findet man in der wirklich exzellenten Dokumentation.

Wie der Hackathon verief …

Der fleissige Jiayong hatte bereits am Vortag Vorarbeit geleistet und somit begann der Hackathon mit einer kleinen Einführung in seinen Prototypen.

Jiayong bereitet den Prototypen vor

Der Prototyp war bereits in der Lage den Twitter-Stream zu analysieren und die Clients auszuwerten. Die Resultate werden dabei in der DatebankRedis gespeichtert. Da unsere eigentliche Aufgabe bereits gelöst war, bevor der Hackathon gestartet ist, haben wir uns einige zusätzlichen Fragen gestellt um Storm besser zu verstehen und haben die Arbeit auf drei Teams verteilt.

Der Wissensdurst

Mit Frühstück ging es dann ran an den Speck …

Mit Frühstück lässt es sich noch geschmeidiger “hacken”

… und bald war auch schon Mittag und es wurde  gegrillt …

Christian grillt die Olmas

… und bereits nach dem Mittagessen hatten wir unsere Ergebnisse.

Da wir weit unter den 8 Stunden lagen, konnten wir nachmittags noch Kafka begutachten, aber hierzu wird es noch einen separaten Blog-Post geben.

RESULTATE

Eine wesentliche Aufgabe war, den Prototypen auf Amazon S2 laufen zu lassen. Nach 58m 56s Laufzeit hatten wir auch schon unsere Ergebnisse:

1. web (33348)
2. Twitter for iPhone  (19968)
3. Twitter for BlackBerry (18023)
4. Twitter for Android (16757)
5. UberSocial for BlackBerry (5370)
6. Mobile Web (4022)
7. TweetDeck (2682)
8. Echofon (2536)
9. Keitai Web (2349)
10. twicca (1924)
11. Write Longer (1766)

total #145380 clients emitted by bolt

 FAZIT

Es war ein produktiver und abwechslungsreicher Hackathon und obendrein hat es sehr viel Spass gemacht. Storm bietet ein solides System um Echtzeit-Daten zu verarbeiten und ist intuitiv zu verwenden. Die exzellente Dokumentation lässt kaum Fragen offen.

SCREENSHOTS

Das Storm Web-UI in Aktion

Ganglia zum Monitoring der Storm Hosts

Resultate

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *