Daten aus sozialen Netzwerken optimal auswerten

Echtzeit-Datenanalyse mit Apache Storm

| Autor / Redakteur: Thomas Joos / Nico Litzel

HDInsight-/Hadoop-Cluster mit Apache Storm erstellen Administratoren am einfachsten im Webportal von Microsoft Azure mit einem Assistenten.
HDInsight-/Hadoop-Cluster mit Apache Storm erstellen Administratoren am einfachsten im Webportal von Microsoft Azure mit einem Assistenten. (Bild: T. Joos)

Apache Storm gehört zu den bekanntesten Big-Data-Lösungen im Open-Source-Bereich und läuft ebenfalls unter dem Apache-Dach. Storm ist ein Echtzeitverarbeitungs-System, das neben der Analyse von Daten auch die Ausgabe erlaubt, während die Berechnung im Hintergrund weiterläuft.

Unternehmen, die eigene Big-Data-Umgebungen aufbauen, sollten sich auch mit Apache Storm auseinandersetzen. Seit einiger Zeit wird Storm als Top-Level-Projekt gelistet, ist also für den produktiven Einsatz in Unternehmen geeignet.

Außerdem wird zwischen der Incubator- und Top-Level-Phase geprüft, ob es lizenzrechtliche Probleme gibt und das Projekt auch gemäß den Vorgehensweisen von Apache entwickelt wird, also über eine rege Entwicklergemeinschaft verfügt, die das Produkt ständig weiter entwickeln kann.

Storm wurde ursprünglich von Twitter übernommen und schließlich an Apache übergeben. Das zeigt auch den Schwerpunkt von Storm: die Analyse von Daten aus sozialen Netzwerken. Apache Storm kann aber auch Daten aus anderen Streams auslesen, bevor diese persistent gespeichert und abgeschlossen werden.

Die Software wird bereits von zahlreichen Unternehmen produktiv genutzt, darunter Twitter, Cisco, Spotify, Yahoo, Microsoft und Alibaba.com. Der große Unterschied von Storm zu anderen Technologien wie Hadoop ist die Echtzeitanalyse im Vergleich zu Batch-Verarbeitungen.

Daten in Echtzeit auswerten

Das Echtzeit-Analysesystem kann nicht nur Daten in Echtzeit verarbeiten, sondern die Ergebnisse während der Verarbeitung auch ausgeben. Die Daten werden aber nicht nur angezeigt, sondern Entwickler können auch Abfragen erstellen, die ebenfalls parallel durchgeführt werden. Storm kann rechenintensive Aufgaben auf verschiedene Clusterknoten verteilen, ebenfalls in Echtzeit.

Am Beispiel von sozialen Netzwerken ist das etwa sinnvoll, um auszuwerten, wie viele Nutzer ein Tweet erreicht. Storm ist durch die Clusterunterstützung auch sehr fehlertolerant. Außerdem kann die Lösung abgestürzte Abfragen erneut starten, wenn erste Versuche der Verarbeitung nicht funktioniert haben.

Storm basiert auf der Programmiersprache Clojure. Das Produkt läuft in einer Java Virtual Machine. Die JAR-Container lassen sich auch in einem Cluster betreiben. Das System verfügt über eine eigene Überwachung, die Worker-Threads überwachen und bei Problemen neu starten kann. Um Daten zu verarbeiten und sich mit dem Analysesystem zu verbinden, ist aber Clojure oder Storm nicht notwendig. Der Zugriff ist auch mit so gut wie allen anderen Programmiersprachen möglich. Bestandteil sind derzeit Ruby und Python. Wer andere Sprachen verwenden will, kann den Code ergänzen oder eine Ergänzung anfordern. Hier sind nur wenige Änderungen notwendig.

Storm lokal verwenden oder in der Cloud einsetzen

Storm lässt sich in lokalen Big-Data-Umgebungen nutzen und zusammen mit Hadoop betreiben. Aber auch in der Cloud bei Microsoft Azure und Amazon Web Services lässt sich Storm einbinden, wie auch in den Microsoft-eigenen Hadoop-Dienst HDInsight in Microsoft Azure.

In HDInsight wird Storm als Clusterlösung integriert. Auf dieser Basis lassen sich Daten auslesen und auf Websites bereitstellen oder mit anderen Cloud-Diensten weiter bearbeiten. Unternehmen können dazu auch virtuelle Netzwerke erstellen, um Resourcen in privaten Rechenzentren bereitzustellen. Am Beispiel von HDInsight werden Daten aus einer Warteschlange wie Kafka, Azure-Service-Bus-Warteschlangen oder Ereignis-Hubs ausgelesen. Die Warteschlange hat die Aufgabe, dass die Daten bei einem Ausfall in persistenter Form weiterhin vorliegen.

Ein Storm-Cluster besteht zum Beispiel in HDInsight aus einem Hauptknoten, Nimbus genannt. Dieser verteilt die Aufgaben zur Berechnung und die Workloads auf die anderen Clusterknoten. Die untergeordneten Clusterknoten tragen die Bezeichnung Supervisor. Der Nimbus überwacht außerdem die anderen Knoten und deren Aufgaben. Schlägt ein Thread fehl, kann der Nimbus den Neustart auf einem anderen Knoten veranlassen. Dieser Aufbau wird aber auch in anderen Cloud-Diensten und auch bei lokal installierten Clustern so durchgeführt.

Umfangreiche Hilfestellung

Um einen HDInsight-Cluster zu erstellen, rufen Administratoren im Azure-Portal die Option HDInsight auf. Hier besteht die Möglichkeit, über einen Assistenten einen Hadoop-Cluster zu erstellen. Der Assistent erlaubt eine Schnellerfassung, stellt aber auch umfassendere Optionen zur Verfügung. Natürlich besteht auch die Möglichkeit, nach der Erstellung des Clusters, jederzeit weitere Einstellungen zu ändern, Knoten hinzuzufügen oder zusätzlichen Speicher bereitzustellen. Bei der benutzerdefinierten Erstellung gibt es mehr Möglichkeiten zur Auswahl. Neben Hadoop lassen sich an dieser Stelle auch die beiden Optionen HBase und Storm auswählen.

Wer sich mit Storm auseinandersetzen will, kann sich das Lernprogramm bei Apache ansehen. Auch Microsoft stellt eine Hilfeseite zur Verfügung, die bei der Integration von Storm in HDInsight unterstützt. Weitere Informationen zu Apache Storm stellt auch Hortonworks online bereit.

Mit Apache Zookeeper können Administratoren die Hadoop-Infrastruktur zentral steuern, auch Storm-Cluster. Zookeeper ist ein zentraler Dienst für die Pflege von Konfigurationsinformationen, die Benennung von Objekten und bietet eine verteilte Synchronisation und Gruppendienste. Der Dienst arbeitet optimal mit Hadoop- und Storm-Clustern zusammen.

Apache Storm kann ebenfalls mit HBase zusammenarbeiten. Entwickler können auch Daten in Hive und HBase in Storm integrieren. Die NoSQL-Datenbank HBase steht auch über HDInsight zur Verfügung. HBase kann als Datenbank für Big-Data-Lösungen genutzt werden. Diese Technologie baut auf Google BigTable auf und kann sehr große Datenmengen speichern. Zusammen mit Storm lassen sich auf diesem Weg also effizient Daten verarbeiten. Apache Spark erweitert die Möglichkeit von Hadoop-Clustern um Echtzeitabfragen, ähnlich zu SQL. Dazu bietet das Framework In-Memory-Technologien, kann also Abfragen und Daten direkt im Arbeitsspeicher der Clusterknoten speichern. Da die Abfragen sich auch parallel auf mehrere Knoten verteilen lassen, steigt die Leistung enorm. Storm kann diese Technologie in bestimmten Bereichen noch weiter beschleunigen.

Fazit

Apache Storm ist vor allem bei der Analyse von Daten aus sozialen Netzwerken wie Facebook oder Twitter hilfreich. Unternehmen, die solche Daten in ihrer Big-Data-Umgebung analysieren wollen, sollten sich Apache Storm ansehen. Durch die mögliche Integration in Microsoft Azure lassen sich die Möglichkeiten von Azure schnell und einfach umsetzen und testen.

Kommentare werden geladen....

Kommentar zu diesem Artikel abgeben

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 43378204 / Infrastruktur)