Big Data in Echtzeit verarbeiten

So analysieren Sie große Datenmengen mit Apache Storm

| Autor / Redakteur: Thomas Joos / Nico Litzel

(Bild: © James-Thew – stock.adobe.com)

Mit Apache Storm lassen sich Daten in Big-Data-Systemen in Echtzeit verarbeiten. Das Tool arbeitet mit verschiedenen Datenquellen zusammen und fügt sich optimal in Hadoop-Umgebungen ein.

Apache Storm hat seinen Schwerpunkt in der Echtzeitanalyse von großen Datenmengen. Dazu gehören zum Beispiel Daten aus sozialen Netzwerken und Streams. Auch Twitter- und Facebook-Daten lassen sich analysieren. Neben der Echtzeitüberwachung von Daten können die Ergebnisse auch gleich ausgegeben werden.

Dadurch kann zum Beispiel für Unternehmen festgestellt werden, welche Reichweite ein Beitrag oder ein Tweet hat. Ursprünglich wurde Storm von Twitter entwickelt. Storm basiert auf der Programmiersprache Clojure. Das Produkt läuft in einer Java Virtual Machine. Java ist also eine wichtige Grundlage von Storm. Auch Python spielt in Storm eine Rolle, da Konfigurationsdateien auf Basis von Python die einzelnen Daemons steuern.

Eine Hadoop-Umgebung kann aus verschiedenen Produkten bestehen, die miteinander zusammenarbeiten. Zusätzlich zu Hadoop werden meistens noch Storm, Spark, Solr, HBAse, Hive und weitere Produkte eingesetzt. Apache Atlas hat die Aufgabe, alle Daten, die diese Systeme durchlaufen, zu klassifizieren und das Auditing dabei zu berücksichtigen. Metadaten werden erstellt, Sicherheitseinstellungen berücksichtigt und die Daten gebündelt.

Storm in der Praxis nutzen

Apache Storm kann in lokalen Umgebungen genauso genutzt werden, wie in Cloudlösungen. Die Entwickler stellen auch ein Lernprogramm zur Verfügung. Microsoft bietet außerdem eine Hilfe zur Integration von Storm in HDInsight an.

Storm wird normalerweise über einen Cluster betrieben. Hier gibt es Master- und Workerknoten. Der Master kümmert sich um die Verteilung und Überwachung von Aufträgen an die einzelnen Worker. Dazu nutzt Storm den Nimbus-Daemon. Dieser kommuniziert über das Netzwerk mit dem Supervisor-Daemons, die auf den einzelnen Knoten laufen. Die Kommunikation zwischen Nimbus und Supervisor koordiniert ZooKeeper.

Mit Apache ZooKeeper können Administratoren die Hadoop-Infrastruktur zentral steuern. ZooKeeper ist ein zentraler Dienst für die Pflege von Konfigurationsinformationen, die Benennung von Objekten und bietet eine verteilte Synchronisation und Gruppendienste. Dazu kann die Lösung die meisten Produkte in einer Big-Data-Umgebung zentral verwalten.

Die Umgebung ist generell ausfallsicher gestaltet. Das heißt, wenn Nimbus oder Supervisor ausfallen, können einzelne Arbeitsprozesse (Worker) weiterlaufen und Daten analysieren. Fallen Deamons aus, beziehungsweise treten Fehler auf, stoppt Storm seine Deamons und startet diese automatisch neu. Das vermeidet systemweite Abstürze.

Topologien in Apache Storm

In einer Storm-Topologie wird mit Streams, Spouts und Bolts gearbeitet. Deren Konfiguration ist in der Storm-Hilfe genauer erklärt. Die einzelnen Aktionen, die in der Storm-Topologie ablaufen analysieren automatisch die Daten. Basis der Analyse sind Tupel. Ein einzelner Stream besteht aus mehreren dieser Tupel, die wiederum aus verschiedenen Paaren von Werten und Schlüsseln bestehen.

Neben Streams und den damit verbundenen Tupeln spielen auch die Spouts eine Rolle. Streams bedienen sich bei Spouts um Daten abzufragen. Die Spouts sind wiederum mit der Quelle der Daten verbunden. Spouts erstellen die Tupel auf Basis der Daten, die zur Verfügung stehen und geben die Tupel an die Streams weiter.

Die Datenquellen werden also an die Spouts verbunden. Dabei kann es sich um verschiedene Quellen aus sozialen Netzwerken handeln, aber auch um Protokolle und Webanwendungen. Die eigentlichen Analyse-Prozesse der Streams sind die Bolts. Die Bolts führen Aktionen durch und können auch komplexere Analysen darstellen und Tupeln auf Basis verschiedener Werte filtern. Außerdem können Bolts auch Daten aus Datenbanken einlesen oder in Datenbanken speichern.

Storm testen oder produktiv nutzen

Strom kann generell auf einem einzelnen Server installiert werden, um die Umgebung zu testen. In produktiven Umgebungen müssen natürlich mehrere Server eingesetzt werden, welche die jeweilige Rechenleistung aufbringen können. Auch der Betrieb in der Cloud ist möglich, zum Beispiel in Microsoft Azure. Generell ist die Installation auf Linux-Server der ideale Weg zur Inbetriebnahme.

Zur Installation sollte zunächst Java installiert werden. Danach wird ZooKeeper auf dem Server installiert. Wenn Java und ZooKeeper auf dem Server installiert sind, können die Storm-Komponenten installiert werden. In vielen Linux-Distributionen kann die Installation über das Terminal und der jeweiligen Paketverwaltung durchgeführt werden.

Um Storm zu nutzen, müssen nach der Installation der Umgebung verschiedene Konfigurationsdateien erstellt und angepasst werden. Die Dateien steuern unter anderem den Start oder das Überwachen der einzelnen Prozesse. Der Nimbus auf dem Master-Server wird genauso über Konfigurationsdateien gesteuert, wie der Supervisor auf den anderen Servern. Sobald die Konfiguration so abgeschlossen ist, wie die Entwickler auf ihrer Webseite zeigen, kann die Weboberfläche des Strom-Servers über die Standardadresse „http://<Name>:8080“ aufgerufen werden.

Natürlich lassen sich Kafka, Storm, Ambari und HDInsight-Cluster manuell erstellen oder über eigene Skripte. Allerdings ist die Zusammenarbeit der Dienste so kompliziert, dass in den meisten Fällen eine automatisierte Bereitstellung besser geeignet ist.

Größere Umgebungen nutzen

In größeren Umgebungen spielt ZooKeeper eine noch wichtigere Rolle. Beim Einsatz mehrerer Server wird im ZooKeeper-Cluster eine Liste der Hosts angegeben, auf denen Storm betrieben wird. Auch hier spielen zahlreiche Konfigurationsdateien eine wichtige Rolle. Die einzelnen Optionen und notwendigen Dateien sind am schnellsten über die Webseite der Entwickler zu finden.

Apache Storm kann auch 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.

Microsoft Azure HDInsight kann nicht nur mit Apache Spark und Apache Storm zusammenarbeiten, sondern auch mit anderen Diensten zur Verarbeitung von Big-Data-Informationen, zum Beispiel Apache Spark. Diese drei Open-Source-Dienste, also Spark, Storm und Kafka, laufen im internen Netzwerk bei Microsoft Azure im HDInsight-Cluster oder in eigenen Clustern. Die zu verarbeitenden Daten gelangen direkt aus dem Internet in die Datenverarbeitung. Dazu stellt Microsoft Azure das HDInsight Public Gateway zur Verfügung. Der schnellste Weg, um Storm zu testen, besteht also darin in Microsoft Azure über ein Testabonnement einen Testcluster aufzubauen.

Apache Arrow – schnellere Analysen

Apache Arrow ist ein Tool für spaltenbasierte In-Memory-Datenverarbeitung. Apache Arrow bindet sich als Schaltzentrale zwischen den einzelnen Tools in der Big-Data-Infrastruktur ein. Apache Arrow arbeitet mit vielen Big-Data-Produkten zusammen und bietet daher auch eine breite Unterstützung der wichtigsten Programmiersprachen. Java, C, C++, Python sind bereits eingebunden, die Entwickler haben aber bereits angekündigt in Zukunft noch mehr Sprachen zu integrieren, zum Beispiel R. Die Entwickler von Calcite, Cassandra, Drill, Hadoop, HBase, Ibis, Impala, Kudu, Pandas, Parquet, Phoenix, Spark, und Storm arbeiten bereits eng mit den Entwicklern von Apache Arrow zusammen.

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? Kontaktieren Sie uns über: support.vogel.de/ (ID: 45040033 / Infrastruktur)