Kapitel 1: Welche Big Data Komponenten sind notwendig und wie lassen sich Tweets streamen?

Die Studenten des Business Intelligence & Analytics-Bereichs in Gummersbach beschäftigten sich seit Juni diesen Jahres mit der Implementierung des bekannten AWS Twitter Showcase in Microsoft Azure. Der folgende Beitrag stellt „“ in nicht ganz chronologischer Reihenfolge „“ dar, wie das Projekt abgelaufen ist.

Hierbei sollte der Azure Showcase möglichst an einen bei Opitz Consulting durchgeführten AWS (Amazon Web Services) basierten BigData Showcase angelehnt sein, um eine Vergleichbarkeit der beiden Plattformen zu ermöglichen. Der AWS Showcase ermöglichte, basierend auf Apache Kafka, Apache Spark, Apache Hadoop und dem ELK-Stack, das Streaming und die Verarbeitung von Tweets.
Somit ging es auch hier um das Streamen von Tweets mittels Apache Kafka, die Verarbeitung der Daten in Form einer Stimmungsanalyse mithilfe von Apache Spark und die abschließende Visualisierung ebendieser Daten mittels ELK-Stack. Zusätzlich wurde ein entsprechendes DWH Offloading implementiert, um Twitter-Daten mit wertvollen Informationen (bspw. Business-Daten) anzureichern. Außerdem kann das Data Warehouse von Daten befreit werden, welche nicht verwendet werden, wodurch diese wiederum kostengünstig abgespeichert werden. Die ankommenden Daten wurden mittels Kibana in Echtzeit visualisiert und zusätzlich in einem Data Lake persistiert.

Der Showcase wurde in diesem Zusammenhang demnach in die folgenden Bestandteile gegliedert, die zwar nicht vollständig voneinander abgrenzbar sind, aber dennoch eine Arbeit in kleineren Teams ermöglicht haben:

    Kafka Cluster: Streamen der Tweets
    Spark Cluster (Machine Learning): Durchführung der Stimmungsanalyse
    ELK-Stack: Echtzeit-Visualisierung der Daten
    Hadoop Cluster: DWH Offloading

Das Projekt, wie auch seine Bestandteile, war für sämtliche Teammitglieder neu, sodass zu Beginn die einzelnen Komponenten unabhängig von Microsoft Azure getestet wurden, um hohe Kosten für die Einarbeitung zu vermeiden. Hierzu wurden die einzelnen Komponenten zuvor auf einer lokalen virtuellen Maschine installiert und miteinander verbunden.
Der nächste Beitrag wird auf die Installation und die Nutzung von Apache Kafka für das Streamen von Daten in Azure eingehen.

Im Folgenden wird mit der Entwicklung des Azure Showcases begonnen. Apache Kafka wird in einem ersten Schritt aufgesetzt und konfiguriert.
Gestartet wurde mit einer virtuellen Maschine, auf der Apache Kafka installiert wurde. Dies gestaltete sich als vergleichsweise einfach, sodass das System im Anschluss direkt in Azure umgesetzt wurde. Hierzu werden in Azure eigene HDInsight Cluster verwendet, auf denen bereits eine Version von Kafka (Spark, Hadoop) vorinstalliert ist. Somit ergibt sich durch die Nutzung von Azure der Vorteil, dass keine virtuelle Maschine für Kafka konfiguriert werden muss, da diese automatisch nach der Eingabe der notwenigen Parameter (z.B. Benutzername, Passwort, etc.) erstellt wird. Apache Kafka folgt einem Publish-Subscribe-Prinzip, bei dem die Daten in eigenen Speicherkomponenten (Topics) gebuffert werden. Der Producer veröffentlicht Daten im Kafka Topic, während der Consumer ein solches Topic abonniert und damit auf die zugrundeliegenden Daten zugreifen kann.

Der folgende Screenshot zeigt dabei eine mögliche Konfiguration eines Apache

Microsoft Azure hat hierbei allerdings die Eigenheit, dass Azure-Cluster gelöscht werden müssen, damit diese keine weiteren Kosten verursachen.
Die Kosten für das Cluster werden stündlich in Abhängigkeit von der verwendeten Hardware abgerechnet. Dies bedeutete für uns, dass die Cluster morgens aufgesetzt und nach der Arbeit wieder gelöscht werden mussten. Nach der Generierung einer Umgebungsvariable und der Erzeugung eines Kafka Topics, konnte mittels Consumer auch schon getestet werden, ob das Streaming funktioniert. Da allerdings auch auf die Twitter-API zugegriffen werden muss, wurde ein Juypter Notebook erstellt, welches das Streaming der Tweets anstößt. Zur Kontrolle musste eine Verbindung via SSH hergestellt werden, um daraufhin einen Consumer zu starten, der das Topic abonniert und damit die Daten abruft.
Im nächsten Beitrag möchten wir auf die Verarbeitung der Tweets mit Apache Spark eingehen und ein DWH-Offloading integrieren, um Business-Daten aus einer Datenbank mit den Twitterdaten verbinden zu können.

 

Alle Beiträge von pbockje

Schreibe einen Kommentar