Big Data - Die Serie Teil 01

Big Data: Hilfe, wo soll ich anfangen?

Der erste Teil der Artikelserie zum Überblick über die große Big Data Landschaft befasst sich mit dem Anfang: Wie starte ich mit Big Data?

Eine typische Situation: ein Kind soll sein Zimmer aufräumen, weiß aber vor lauter Chaos nicht, wo es anfangen soll. Genauso erging es mir mit Big Data.

Irgendwann steht das Thema vor der Tür. Alles, was ich bei der ersten Beschäftigung lese, zeigt, welch kompliziertes Biest Big Data zu sein scheint. Wozu brauche ich Big Data überhaupt und wann setze ich es ein? Wie unterscheiden sich die Big Data-Stacks von Amazon über Google bis zum Apaches Hadoop?  Big Data ist offensichtlich ein größeres Thema, als sich mit einem neuen Framework zu beschäftigen. Wie also anfangen?

In erster Linie geht es um Daten. Daten in sehr großer Menge, aus unterschiedlichen Quellen, in verschiedenen Formaten und mit  variierender Eintreffgeschwindigkeit sollen beherrscht werden. Für herkömmliche Datenbanken oder BI-System ist die Datenmenge oft zu groß oder zu heterogen. Jetzt kommt Big Data ins Spiel.

Horizontale Skalierung und Clustering

Aber was macht Big Data anders?
Big Data basiert auf horizontaler Skalierung.

Die 'horizontale Skalierung' ist der entscheidende Begriff zum Verständnis der Architektur. Um die Kapazität der Ressourcen wie CPU, Hauptspeicher oder Festplatte zu erhöhen, schließen sich mehrere Knoten (Rechner/VMs) zu einem Verbund zusammen (Cluster). Die Ressourcen eines Clusters lassen durch neue Knoten beliebig vergrößern. Das ist horizontale Skalierung.
Die Ressourcen des Clusters sind die Summe der Ressourcen der einzelnen Knoten.

Ok, ein Cluster verhält sich wie ein großer Rechner. Aber wo ist das Betriebssystem, welches den Prozessen die Ressourcen zuteilt? Leider gibt es kein dezidiertes Cluster-Betriebssystem. Aber es gibt Systeme, die sich mit Ressourcenverteilung beschäftigen oder andere Aufgaben eines Betriebssystems übernehmen (Clustermanagement).

Cluster

Das Konzept des Clusters ist keine Erfindung von Big Data. Dieses Konzept wird bereits seit Langem genutzt. Beispiel sind SAN (Storage Area Network) oder Archiv-Systeme (z.B. Centera). Ob und wie Ressourcen z.B. in einem SAN verteilt sind, ist für die Nutzung völlig transparent.

Programmiermodelle in Big Data dagegen verstecken die Verteilung nicht, sondern legen sie ganz bewusst offen. Das fordert neue Programmierparadigmen. Da die Verteilung nicht versteckt wird, ist allerdings eine bessere Ausnutzung der Ressourcen im Cluster möglich.    

Rollen in einem Big Data Cluster

Welche Aufgaben soll Big Data erfüllen und wie sieht die grundsätzliche Architektur aus?
Ein gängiges Bild für Big Data ist der Data Lake. Vor uns liegt ein großer, stiller See. Dieser ist nicht mit Wasser, sondern mit Daten gefüllt.

Einspeisung von Daten

Zuerst kümmern wir uns um die Zuflüsse. Wie kommen Daten in den Data Lake? Ein Data Lake soll sich aus unterschiedlichen Datenquellen speisen. Es fehlen allerdings die Zuflüsse von den Quellen in den Data Lake. Es müssen Verbindungen zu den einzelnen Datenquellen hergestellt und Daten in den Data Lake geleitet werden. Häufig werden auch schon erste Bereinigungen der Daten vorgenommen.

Was passiert, wenn Daten zu Spitzenzeiten schneller eintreffen als sie verarbeitet werden können? Es muss einen Pufferungsmechanismus für Daten geben.

Die Aufgabe, Quellen anzuzapfen und in den Data Lake zu leiten, übernehmen spezialisierte Tools. Diese Tools unterscheiden sich von Stack zu Stack, erfüllen aber immer die gleichen Aufgabe.

Verteilte Datenhaltung

Verteilte Datenhaltung (Distributed Data Storage) sorgt dafür, dass die Daten im Cluster auf die unterschiedlichen Knoten verteilt werden. Daten werden redundant gespeichert, um den Ausfall von Knoten zu kompensieren. Fällt ein Knoten aus, so gibt es eine Kopie der Daten im Cluster.
Kommen Knoten dazu, so werden die Daten neu im Cluster verteilt, immer möglichst gleichmäßig.

Verteilte Datenhaltung vermittelt das Bild, als wären die Daten in einem Filesystem auf einer Maschine organisiert. Die Verwaltung der Daten geschieht im Hintergrund. Auch hier gibt es unterschiedliche Tools für die einzelnen Stacks.

Schleusen auf zu verteilten Datenverarbeitung

Daten strömen aus dem Data Lake und treiben die Verarbeitung an. Dieses Bild ist aus Sicht der herkömmlichen Datenverarbeitung befremdlich. Klassische Ansätze reichen oft nicht aus für diese Datenmengen. Daher werden Daten nicht nur verteilt gespeichert, sondern auch verteilt verarbeitet. Jede Anwendung wird in einzelne Aufgaben oder Tasks aufgespalten. Tasks suchen sich freie Ressourcen im Cluster und verteilen sich auf die freien Ressourcen. Das ermöglicht eine massive Parallelisierung. Dieser grundsätzliche Paradigmenwechsel ist der Schlüssel zum Verständnis von verteilter Datenverarbeitung.

Öffnet der Data Lake seine Schleusen, erinnert dies an klassische Batchverarbeitung.  Auch wenn es sehr viele Daten sein können, wird eine begrenzte Menge an Daten abgearbeitet (Batch Processing). Dies wird allerdings auf einem Cluster mit dem neuen Programmierparadigma durchgeführt.

Allerdings kommen Daten auch durch die Daten-Einspeisung ins System; häufig als kontinuierlicher Strom. Diese Daten können natürlich erst im Data Lake geparkt werden, um sie später zu verarbeiten.  Aber warum Zeit vergeuden? Daher hat sich eine zweite Variante der verteilen Verarbeitung ausgebildet, das sogenannte Stream Processing. Daten werden unmittelbar bei ihrem Eintreffen abgegriffen und so quasi in Echtzeit verarbeitet (near real time processing).

Abbildung 2: Rollen in einem Big Data Cluster

Machine Learning

Die Konzepte und Algorithmen von Machine Learning existieren schon lange. Zu finden sind diese Konzepte auch in Business Intelligence Werkzeugen.  Aber nicht umsonst hat Machine Learning mit Aufkommen der Big Data Architekturen einen regelrechten Hype erfahren. Erst die Möglichkeit, beliebig große Datenmengen verteilt zu verarbeiten, hat Machine Learning die technologische Plattform geboten alle Stärken auszuspielen.

Was ist also zu Anfang klar?

Big Data Lösungen gibt es in unterschiedlichen Geschmacksrichtungen, sprich Softwarestacks von unterschiedlichen Anbietern. Die Spanne reicht von Amazon AWS bis zu Apache's Hadoop. Allen Lösungen ist gemein, dass sie auf horizontale Skalierung und damit auf Clustering setzen. Ebenso finden sich in allen Lösungen die Rollen/Aufgaben der Dateneinspeisung, Datenspeicherung und Datenverarbeitung (batch processing, stream processing).

In Teil 02 der Big Data Serie, der in Kürze erscheint werden die wichtigsten Tools des Hadoop-Stacks vorgestellt.

 


Artikel 02 der Big Data Serie: Wer hängt im Hadoop-Ökosystem mit wem zusammen?

Artikel 03 der Big Data Serie: Wohin mit meinen Daten?

Artikel 04 der Big Data Serie: Wie verpacke ich meine Daten?

 

Jetzt teilen: