Big Data-Technologien

Um Technologien wie beispielsweise Apache Hadoop auszuführen, sind bestimmte Anforderungen an die Nutzer gerichtet. Dazu zählen der Datenspeicher, die Kompetenzen der Anwender, Infrastruktur sowie Netzwerk- und Sicherheitsinfrastruktur. Mit Datenspeicher sind die Speicherplattformen gemeint, welche das Sammeln der benötigten digitalen Daten erlauben. Die Kompetenz umfasst dabei das nötige Know-how, aus dem durch die Analysen Chancen und Möglichkeiten gefiltert werden. Infrastruktur versteht dabei die benötigten enormen asynchronen Prozesse, welche die Aufgabenverteilung steuern. Um einen reibungslosen Datenaustausch zu gewährleisten, ist eine Netzwerkinfrastruktur unabdingbar. Letztlich ist die Sicherheit der Infrastruktur und der entstehenden Daten ein hohes Gut, welches unter Sicherheitsinfrastruktur verstanden wird (Intel IT Center 2012, S. 2).

Apache Hadoop

Apache Hadoop ist eine in der Literatur weit verbreitete und stetig mit Big Data in Verbindung gebrachte Technologie. Auch ähneln sich die Aussagen über diese Plattform, sodass von einem allgemeinen Verständnis ausgegangen werden kann.

Minelli et al. beschreiben Apache Hadoop als die bekannteste Technologie, wenn es um die Sammlung und Analyse von großen unstrukturierten Datenmengen wie im Falle von Big Data geht. Zurückzuführen ist Hadoop auf Doug Cutting und Mike Cafarella, welche bei ihrem Projekt namens „Nunch“ versuchten, einen großen Web-Index für Yahoo! zu entwickeln. Dabei wurde Googles Paper zu MapReduce und das Google File System herangezogen, was schließlich zur Implementierung von Hadoop führte (Minelli et al. 2012, S. 61).

Hadoop stellt – vereinfacht ausgedrückt – eine Technologie dar, welche hinter rigiden Frameworks Organisationen dabei hilft, Suchanfragen durch einen gesammelten Datenbestand des Unternehmens durchzuführen. Dabei werden sowohl strukturierte als auch unstrukturierte Daten durchleuchtet. Der Unterschied zu älteren Technologien wie dem Data Warehousing liegt darin, dass aufgrund der flexiblen horizontalen Skalierung Suchanfragen möglich sind, die zuvor nicht machbar erschienen (Minelli et al. 2012, S. 62).

Laut Müller handelte es sich bei Hadoop aber nicht um einen Ersatz für Data-Warehouse, sondern eine Erweiterung. Vielmehr beschreibt er die Technologie als ein Datenarchiv, welches als Plattform für die Anwendung von Datenanalysen und deren Aufbereitung dienen kann. Daher finden sich Funktionalitäten in Hadoop wieder, die einem Data Warehouse zugesprochen werden können, wie beispielsweise die Mittelwertberechnung oder Aggregationen (Fasel und Meier 2016, S. 147).

Hadoop kann daher als wichtige Technologie für Big Data verstanden werden, da es die enormen Daten, die in kürzester Zeit entstehen, problemlos aufnehmen und verarbeiten kann. Traditionelle Datenverwaltungssysteme wie ein Data Warehouse-System sind aufgrund ihrer Architektur nicht in der Lage, bei der Fülle an Daten dieselbe Performance zu bieten wie in diesem Fall Hadoop. Des Weiteren ist bei einer verhältnismäßig großen Datenaufnahme, wie es bei Big Data der Fall ist, bei der Nutzung eines traditionellen Systems mit hohen Betriebskosten zu rechnen (Fasel und Meier 2016, S. 145).

Hadoop stellt ein sogenanntes „Top-Level-Projekt“ dar, welches von der Apache Foundation betrieben wird. Meyer und Fasel charakterisieren vier Vorteile, die ein Hadoop Framework beinhaltet. Zum einen bietet es, wie bereits genannt, eine einfache und schnelle Möglichkeit, Cluster zu skalieren. Vergleichsweise zu anderen Technologien bietet in diesem Fall Hadoop die Möglichkeit, die entstehenden Datenmengen auf sogenannten „Standard-Servern“ zu speichern. Diese Vorgehensweise erlaubt es, Daten bis zum Petabyte-Bereich problemlos zu speichern und zu analysieren. Hinzu kommt, dass durch die horizontale Skalierung nicht mit längeren Latenzzeiten zu rechnen ist (Fasel und Meier 2016, S. 145).

MapReduce und HDFS

Die durch Hadoop ermöglichte Parallelisierung erlaubt eine hohe Geschwindigkeit, was die Verarbeitung und Analyse der Daten betrifft. Die Parallelisierung wird im Fall von Hadoop durch das Hadoop Distributed File System (HDFS) und MapReduce ermöglicht (Fasel und Meier 2016, S. 146).

MapReduce und das HDFS stellen die Hauptkomponenten des Hadoop-Systems dar und sind zudem dafür zuständig, auch bei Systemausfällen oder -fehlern weiterzuarbeiten. Dies ist daher möglich, da das HDFS die Daten überwacht, welche auf den Clustern gespeichert werden, und bei Soft- oder Hardwareproblemen, wie beispielweise einem Festplattenausfall, einer beschädigten Datei oder einem nicht benutzbaren Server, sofort nach einem Cluster gesucht wird, auf den die Daten problemlos gespeichert werden können (Minelli et al. 2012, S. 63). Das HDFS wird auch als verteiltes Dateisystem verstanden, bei dem die genannten verteilten Daten redundant in dreifacher Ausführung im Cluster hinterlegt werden. Diese Vorgehensweise ist zudem für die Vorbeugung von Fehlern mitverantwortlich. Dabei geht das HDFS dem Master-Slave-Prinzip nach, bei dem ein Master-Knoten keine Daten selbst speichert, sondern lediglich Metadaten verwaltet, welche auf den Slave-Knoten gespeichert werden (Fasel und Meier 2016, S. 146).

Ähnlich verläuft bei MapReduce die Analyse der Daten. An dieser Stelle überwacht Map- Reduce die Server, die auf den Daten Analysen durchführen, und reagiert auf langsame bzw. nicht antwortende Server automatisch mit einer Aktivierung eines anderen Servers mit Kopien der benötigten Dateien (Minelli et al. 2012, S. 63). Die Zusammenarbeit von HDFS und MapReduce hilft dabei, Hadoop einen skalierbaren, zuverlässigen und fehlertoleranten Service für Datenhaltung und dessen Analyse zu bieten (Minelli et al. 2012, S. 63).

Yet Another Resource Negotiator (YARN)

YARN ist ein neuerer Ressourcen Manager von Apache Hadoop, der von Experten im Big Data-Bereich auch gerne als MapReduce2 bezeichnet wird. YARN erlaubt die Aushebelung von MapReduce aus der Datenverarbeitungskomponente, indem es das Ressourcenmanagement und die Zeitplanungsfunktionen umschreibt (Milanamos o. J.). YARN ist zuständig für die Ressourcenverwaltung und teilt bei der Ausführung eines Programms die benötigten Ressourcen zu. Mit Ressourcen sind die CPU, Festplatten und das Netzwerk gemeint. Dabei werden Start- und Endprozesse durch YARN definiert und kontrolliert. Die Zusammenführung der CPU-Kerne als auch eine bestimmte Größe des RAMs stellen die sogenannten Container dar. Innerhalb von YARN ist dabei der Data  

Manager für die Verwaltung der jeweiligen Container zuständig. Aus diesem Gesichtspunkt kann YARN als eine Art Betriebssystem für das Hadoop Cluster angesehen werden (Fasel und Meier 2016, S. 130).

NoSQL-Technologien

NoSQL-Datenbanken stellen eine weitere Technologie dar, welche mit Big Data arbeiten kann. Dabei unterscheiden sich NoSQL-Datenbanken von den klassischen relationalen Datenbanken. Der größte Unterschied liegt darin, dass NoSQL-Datenbanken im Gegensatz zu relationalen Datenbanken kein festes Schema besitzen, welches aus Tabellen und daraus erzeugten Relationen besteht. Vielmehr handelt es sich bei NoSQL um ein schemafreies, nicht relationales Modell, welches problemlos horizontal und vertikal skaliert werden kann. Dabei ist mit der horizontalen Skalierung die Hinzunahme weiterer Server und mit der vertikalen Skalierung die Hinzugabe weiterer Tabellen gemeint. NoSQL-Datenbanken bieten daraus resultierend eine agile und flexible Datenbank (Fasel und Meier 2016, S. 149).

 Vorteile, welche sich durch die Nutzung von NoSQL-Systemen ergeben, sind unter anderem eine preiswerte horizontale Skalierung, die Nutzung von Echtzeit-Applikationen, eine schnelle und erleichterte Anpassung des Schemas der Datenbank, hohe Ausfallsicherheit und die Möglichkeit zur Speicherung von unstrukturierten und semi-strukturierten Daten (Fasel und Meier 2016, S. 150-151).

 Vergleichsweise zu herkömmlichen SQL-Systemen existiert allerdings nur eine kleine Menge von Abfragesprachen, die in NoSQL-Systemen verwendet werden kann. Dies liegt darin begründet, dass in NoSQL-Systemen Dateien in der Art und Weise gespeichert werden, wie eine bestimmte darauf ausgerichtete Applikation dies erfordert. Vergleichsweise sind die klassischen SQL-Systeme in dieser Hinsicht mit mächtigen bzw. komplexen Abfragesprachen bestückt. Auf Grundlage dessen lassen sich Dashboards, OLAPAnalysen und weiteres darauf anwenden (Fasel und Meier 2016, S. 151).

 Arten von NoSQL–Datenbanken

Laut Fasel und Meyer lassen sich vier Arten von NoSQL-Datenbanken unterscheiden. Diese werden von Key/Value Stores, Document Stores, Column Family Stores und Graphen- Datendanken gebildet (Fasel und Meier 2016, S. 113). Im Folgenden werden die Key/Value Stores, Document Stores und Graphen-Datenbanken näher betrachtet.

Key/Value Stores arbeiten mit einfachen Schlüsseln und Werten, welche keine komplexen Datentypen umfassen. Daraus bilden die Key/Value Stores die einfachste NoSQLDatenbankstruktur. Die einfache Schlüssel/Wert-Paar-Beziehung erlaubt dabei eine

schnelle Lese- und Schreibfrequenz für Datensätze. Allerdings sind Key/Values Stores nicht mächtig genug, um komplexere Operationen, wie beispielsweise Vergleiche aus unterschiedlichen Datensätzen, durchzuführen (Fasel und Meier 2016, S. 113).

Document Stores stellen eine Erweiterung der Key/Value Stores dar. Analog zu ihnen bestehen Document Stores ebenfalls aus Schlüssel/Wert-Paaren, mit dem Unterschied, dass deren Werte aus komplexeren Datenstrukturen zusammengesetzt sind. Bei Document Stores werden die komplexen Datenstrukturen als Dokumente bezeichnet, die zudem aufgrund ihrer unterschiedlichen Struktur voneinander unabhängig sind. Document Stores können auf ähnliche Dokumente Sichten erzeugen, was durch die Indexierung von Attributen möglich ist. Die automatische Verteilung von Dokumenten, dem sogenannten Autosharing, die in neueren Versionen von NoSQL-Datenbanken implementiert sind, erlauben zudem eine horizontale Skalierung, was ebenfalls an Hadoop und dessen HDFS erinnert (Fasel und Meier 2016, S. 115).

Graphen-Datenbanken stellen im Vergleich zu den soeben genannten Datenbanken eine andere Form dar. Das Datenspeicherkonzept der Graphen-Datenbanken unterscheidet sich in dem Sinne von den anderen Datenbanken insoweit, dass Daten auf verschachtelten Listen und Graphen gespeichert werden. Diese Art des Datenspeicherkonzepts erlaubt eine indexfreie bzw. relationstabellenfreie Abfrage innerhalb der Datenbank (Fasel und Meier 2016, S. 122).

In-Memory-Datenbanken

In-Memory-Plattformen stellen ebenfalls Datenbanken dar, welche allerdings auf den Hauptspeicher zugreifen und damit die Überschreibung auf Festplatten vermeiden. Durch diese Art der Datenverarbeitung werden Redundanzen oder Caching-Mechanismen vermieden und führen dazu, dass enorme Datenmengen in kürzerer Zeit durchsucht und analysiert werden können (Fasel und Meier 2016, S. 199).

 In-Memory-Datenbanken arbeiten nach zwei Prinzipien. Die Parallelisierung stellt eines der beiden Prinzipien dar und legt ihren Fokus darauf, so weit wie möglich alle vorhandenen Ressourcen zu nutzen. Dabei werden Anfragen, die an die Datenbank gerichtet sind, so unterteilt, dass eine parallele Ausführung möglich ist. Auch ist eine weitere Parallelisierung innerhalb einer Anfrage möglich. Das zweite Prinzip befasst sich mit der Optimierung der Datenstruktur. Hier wird der Fokus auf die Datenstruktur gelegt. Dabei soll der Zwischenspeicher (Cache), welcher sich zwischen CPU und Hauptspeicher befindet, optimal genutzt werden. Vorgehensweisen zur Optimierung sind unter anderem die Anwendung von spaltenorientierten Datenbanken, da diese große Datenmengen vergleichsweise besser analysieren können (Bachmann et al. 2014, S. 191-192).