Go to Top

Big Data: Anwendungen und eingesetzte Technologien – Teil 2

Big Data Technologien

Im vorherigen Blog-Artikel haben wir bereits die beiden wichtigsten und grundlegendsten Big Data Technologien kennengelernt, die das Sammeln, Speichern und die Auswertung großer unstrukturierter Daten überhaupt erst möglich machen und eigens für diesen Zweck entwickelt wurden: Hadoop und NoSQL.

Aber was ist Hadoop genau?

Hadoop kann man einfach ausgedrückt als ein kohärentes und strukturiertes Set von Software-Werkzeugen bezeichnen, die dezidiert auf die Verarbeitung von Big Data ausgelegt sind. Aus der Open Source Welt kommend, existiert Hadoop bereits in mehreren Distributionen: Die Hauptakteure sind dabei Cloudera, Hortonworks und MapR.

Das Ziel ist es hier aber nicht die drei Werkzeugkästen zu vergleichen – das wäre zu komplex und würde die wesentlichen Merkmale von Hadoop nur in den Hintergrund stellen. Was man sich allerdings merken sollte, ist, dass es gleich mehrere Tools für Hadoop auf dem Markt gibt. Diese Tatsache ist besonders deshalb interessant, weil ihre Existenz zugleich die aktuellen Probleme des Big Data Phänomens darstellen.

Zu den bekanntesten Tools aus dem Set gehört eine Lösung für das grundlegende Problem der massiven Speicherung von unstrukturierten Daten: das Dateisystem. HDFS für Hadoop Distributed File System ist ein verteiltes Dateiverwaltungssystem, das seinen Ursprung in dem Dateisystem von Google hat, dem Google FS. Es ist von Natur aus erweiterbar und überwindet so normalerweise vorhandene Begrenzungen der Dateiverwaltung durch den Speicherplatz der vorhandenen Medien: Bei dieser Lösung kann eine einzelne Datei geclustert werden, das bedeutet, dass sie auf geclusterten (zusammengefassten) Computern mit weiteren geclusterten Festplatten verteilt werden. Diese Maschinen werden dann als „HDFS Cluster“ bezeichnet.

Jenseits des reinen Speicherns – das für sich schon eine Herausforderung darstellen kann und durch HDFS gelöst wird – kommt die Art und Weise, wie Informationen verarbeitet werden müssen. Die beiden wichtigsten Daten-Auswertungstools von Hadoop heißen Hive und Pig. Hive kommt aus dem SQL-Umfeld und wurde ursprünglich von Facebook entwickelt, während Pig aus der Yahoo-Entwicklungsabteilung stammt.

Um schließlich den Überblick über Hadoop zu vervollständigen, muss man sich eines der dringendsten Probleme eines Informationssystems vergegenwärtigen: das Erstellen von Daten-Backups! Hier verteilt HDFS die Datei bei gleichzeitiger automatisierter Replikation über mehrere Server. Es ist hier der Metadaten-Server, der die genaue Bereitstellung der einzelnen Dateien in der verteilten Architektur kennt. In ihm liegt sozusagen der Kern der Datenverfügbarkeit.

Google, Facebook, Yahoo! Es sind diese Firmen, die auch gleichzeitig ihre eigenen Bedürfnisse befriedigen wollen, wenn sie bei Hadoop die Richtung vorgeben und die Forschungs- und Entwicklungsanstrengungen hier immens steigern. Denn es gibt noch viel zu tun: Die Herausforderungen sind natürlich die Speichergröße, die Geschwindigkeit und die Zugriffsarten kontinuierlich zu verbessern. Die neuste Entwicklung war es, die Hochverfügbarkeits-Kapazität zu verbessern. Jedoch konzentrieren sich die Entwickler derzeit darauf einen automatischen Failover für Backups bei Hochverfügbarkeits-Metadaten Server zu entwickeln, denn das muss man derzeit noch manuell machen.

Und was ist NoSQL genau?

NoSQL ist eine Datenbankabfragesprache (query database language) die speziell für Big Data entwickelt wurde. Aber warum NoSQL?

SQL ist die Abkürzung von Structured Query Language – also eine strukturierte Datenbankabfragesprache. Sie ist seit langem in der IT als Möglichkeit etabliert, um schnell auf Informationen aus relationalen Datenbanken (RDBMS) zugreifen zu können. In den 90er Jahren hatten viele Vertriebsmitarbeiter noch Computer ohne Maus oder eine Benutzeroberflache, um Daten von weit entfernten Rechenzentren abzufragen. Sie nutzen stattdessen Kommandozeilenbefehle und SQL-Abfragen, um z.B. in der Logistik Kundenanfragen nach der Verfügbarkeit von LKWs oder Zügen in wenigen Sekunden zu beantworten. SQL ist heute weit verbreitet. Es ist das am meisten strukturierte und schnelle Verwaltungs- und Suchabfragen- Werkzeug für Datenbanken. SQL liegt in verschiedenen Ausprägungen vor, was zeigt, dass es in der Vergangenheit verschiedene Anpassungen gab, darunter MySQL von Oracle, der größte Konkurrent von Microsofts SQL.

NoSQL wird bereits seit 2009 verwendet, um das Big Data Phänomen zu bewältigen. Für einige bedeutet der Ausdruck „kein SQL“, für andere „Nicht nur SQL“ („Not Only SQL“), was in der Konsequenz bedeutet, dass relationale Datenbanken ebenfalls unterstützt werden. Die wichtigste Frage, die zur Schaffung von NoSQL geführt hat, ist der Fakt, dass Millionen von Web-Nutzern auf der ganzen Welt gleichzeitig auf eine Datenbank zugreifen können, eine Herausforderung die gerade Firmen wie Amazon stark beschäftigt. Mit NoSQL wird versucht die Komplexität der Datenbankabfragesprache zu reduzieren, die Architektur der Datenbank insgesamt zu vereinfachen und darüber hinaus einen Weg zu finden, die Datenbank auf so vielen Computern wie möglich gemäß der jeweiligen individuellen Anforderungen und Bedürfnissen zu speichern. Somit ist also eine NoSQL eine Datenbank, die die Rechenlast und die Daten dynamisch und nicht relational zwischen den Rechnern verteilt und dabei von dem Prinzip geleitet wird, lieber eine riesige Tabelle laufen zu lassen anstatt viele zusammenhängende kleine Tabellen. Und mit Hbase gibt es bereits eine NoSQL-Datenbank-Plattform zur Unterstützung von Hadoop.

Ausblick

Heutzutage werden in vielen Unternehmensarchitekturen beide Technologien gemeinsam genutzt. Auf Basis von NoSQL werden die Daten erzeugt und aktualisiert, um sie nach und nach im Batch-Verfahren in einen Hadoop-Cluster zu überführen, wo sie dann mittel BI-Applikationen ausgewertet werden. Es gibt zwar bereits kombinierte Lösungen, die beide Technologien beherrschen und nur einen gemeinsamen Cluster nutzen müssen, aber noch sind die Systeme deutlich teurer als die getrennten Lösungen. Bei zunehmendem Preisverfall werden diese kombinierten Lösungen allerdings die getrennten Systeme langfristig ablösen.

Für die Datenrettung hat die Verbreitung der Big Data Systeme allerdings zur Folge, dass die Datenretter sich sowohl in das neue Dateisysteme Hadoop Distributed File System (oder auch andere wie z.B. das von IBM genutzte GPFS) tief einarbeiten müssen, als auch in die Verteilung der Daten über verschiedene redundant vorliegende Speichermedien durch eine NoSQL-Datenbank-Applikation. Das ist besonders deshalb wichtig, weil aufgrund der enormen Mengen an Daten viele Nutzer der Systeme keine Backups mehr machen, weil das überhaupt nicht mehr durchführbar wäre. Die Kehrseite ist, dass es bei einem Ausfall mehrerer Platten passieren kann, dass die Dateien entweder vom System nicht mehr auffindbar sind oder im schlimmsten Fall vernichtet wurden. Und dann stellt sich die Frage, ob der Aufwand und die Kosten einer Wiederherstellung der gesammelten Daten sich lohnt oder man mit frischen und neu gesammelten Daten weitermacht. Diese Entscheidung ist dann in jedem Einzelfall abhängig von dem konkreten Anwendungsgebiet der Datensammlung oder Unternehmenseinsatz.

Bildquelle: Markus Vogelbacher  / pixelio.de