Die escape GmbH betreibt ein MySQL basiertes Dataware-House in das Daten aus
verschiedenen Webpräsenzen fließen, um dort ausgewertet zu werden. Nach Jahren des
erfolgreichen Betriebs nimmt mit der ständig steigenden Menge an gespeicherten Daten
die Leistung des Systems allerdings ab. Die Laufzeiten für Auswertungen steigen und
die Agilität sinkt. Kleine Optimierungen und Veränderungen des Systems können das
Unbrauchbarwerden hinauszögern, als aber aus Gründen der Leistung auf einen Teil
der Abfragen verzichtet werden muss, wird schließlich klar, dass nur eine grundlegende
Veränderung des Systems den langfristigen Betrieb sicherstellen kann. Aus diesem Grund
wurde nach Technologien gesucht, deren Fähigkeiten die Leistung des bestehenden
Dataware-Houses verbessern können. Dies führte zu Hadoop [Fouc][Whi10a], einem Open
Source Framework, welches die Verarbeitung von riesigen Datenmengen in einem Cluster
erlaubt.
Diese Arbeit untersucht, wie Komponenten des bisherigen Systems durch Dienste von
Hadoop ersetzt werden können. Sie wertet die Möglichkeiten zur Strukturierung von
Daten in einer spaltenbasierten Datenbank aus, evaluiert in einem Benchmark, wie sich
die Zeit von Abfragen im Verhältnis zu einer stetig steigenden Datenmenge verhält und
analysiert detailliert den Ressourcenverbrauch des Clusters und dessen Knoten.
Die Implementierung zeigt, dass sich die spaltenbasierten Datenbank HBase sehr gut
zum Speichern von einer sehr großen Menge an semistrukturierten Daten eignet und die
Dataware-House Komponente Hive durch die Unterstützung eines SQL ähnlichen Syntax
das Erstellen von Abfragen komfortabel ermöglicht. Die Literatur beschreibt, dass HBase
automatisch linear mit dem Hinzufügen von neuen Knoten skaliert. Der durchgeführte
Benchmark zeigt, dass die Ausführungs-Zeit der getesteten Abfragen fast genau linear zur
Datenmenge steigt, der Ressourcenverbrauch nur gering wächst und die Last im Cluster
gleichmäßig verteilt wird. Dies lässt die Schlussfolgerung zu, dass sich Hadoop gut zum
Betrieb einer Dataware-House Lösung eignet.
Inhaltsverzeichnis
1 Einleitung
1.1 Motivation
1.2 Kurzbeschreibung
1.3 Abstract
2 Problemstellung
2.1 Ist-Zustand
2.1.1 Kurzbeschreibung
2.1.2 Funktionsübersicht
2.1.3 Komponenten
2.1.4 Infrastruktur, Kommunikation und Datenfluss
2.2 Problembeschreibung und Anforderungen
2.2.1 Reliability, Availability und Serviceability (RAS)
2.2.2 Ressourcenverbrauch
2.2.3 Performance und Skalierung
2.2.4 Funktionsumfang und Komplexität der Auswertung
2.3 Zielsetzung
3 Grundlagen
3.1 ETL-Prozess
3.2 PHP Data Objects (PDO)
3.3 Thrift
3.4 Apache Hadoop
3.4.1 Hadoop Distributed File System (HDFS)
3.4.2 HBase
3.4.3 MapReduce
3.4.4 Hive
4 Systementwurf
4.1 Infrastruktur
4.2 Komponenten
4.2.1 Hadoop Daten-Import
4.2.2 Hadoop Daten-Export
4.2.3 Monitoring
4.3 Datenstruktur
4.3.1 HBase
4.3.2 Hive
5 Implementierung
5.1 PHP-Hadoop Framework
5.1.1 Thrift-Clients
5.1.2 PHP Data Object (PDO)
5.1.3 Plug-in-Interfaces
5.1.4 Tests
5.1.5 Commandline-Tool
5.1.6 Programmfluss
5.2 Monitoring-Dienst
6 Evaluation
6.1 Testumgebung
6.2 Test-Szenario
6.2.1 Daten-Import
6.2.2 Statistik-Abfragen
6.2.3 Ressourcenverbrauch
6.2.4 Hive und HBase Vergleich
6.3 Ergebnis
6.3.1 Statistik-Abfrage
6.3.2 Ressourcenverbrauch
6.3.3 Hive und HBase Vergleich
7 Fazit
7.1 Ergebnis
7.2 Ausblick
7.3 Epilog
A Anhang
A.1 Parameter des Commandline-Tools
Zielsetzung & Themen
Die Arbeit untersucht die Migration einer bestehenden, auf MySQL basierenden Monitoring- und Data-Warehouse-Lösung auf das Hadoop-Ökosystem, um die durch wachsende Datenmengen bedingten Performance- und Skalierungsprobleme zu beheben. Die Forschungsfrage fokussiert sich darauf, wie Hadoop-Komponenten das bisherige System ersetzen können, um eine verbesserte Skalierbarkeit, Ausfallsicherheit und effizientere Datenverarbeitung zu gewährleisten.
- Migration von MySQL auf Hadoop
- Einsatz von HBase für spaltenbasierte Datenspeicherung
- Nutzung von Hive als Data-Warehouse-Komponente
- Implementierung eines PHP-Hadoop-Frameworks
- Evaluation von Performance, Skalierung und Ressourcenverbrauch
Auszug aus dem Buch
1.1 Motivation
Im Internet etwas suchen oder mal schnell eine Nachricht an Freunde senden, diese Dinge sind für uns alltäglich geworden. Das Internet ist allgegenwärtig für jedermann. Jeder ist online, in sozialen Netzwerken aktiv, gibt permanent Informationen zum Befinden, über Aufenthaltsorte und Aktivitäten preis. Riesige Freundeskreise konsumieren, verbreiten und kommentieren diese Informationen. Ständig wird dadurch eine unglaubliche Datenmenge produziert.
Im Internet omnipräsente Unternehmen und Betreiber von sozialen Netzwerken sind Google und Facebook. Google versucht das komplette Internet auszuwerten und besitzt hierzu einen fast 100 Millionen Gigabyte großen Index, in den jeden Tag hundert tausende Gigabytes hinzugefügt werden [Inc10]. Bei Facebook werden in jeder Sekunde mehr als 50 000 Sofortnachrichten verschickt [Gra11] und das Speichern der Profile und Aktivitäten der Weltbevölkerung erstrebt.
Doch wie viele Daten sind überhaupt in der Welt vorhanden und wie viele Informationen lassen sich daraus gewinnen?
Die höchste bekannte Datendichte findet man in der DNA mit 0, 94 × 1018 Buchstaben pro mm3 [Git06]. Damit könnte man den Inhalt der Bibel auf der große eines Stecknadel Kopfes ungefähr 788 Milliarden Mal speichern. Das menschliche Genom besteht aus ungefähr 3 × 109 Buchstaben, dies entspricht ca. drei Gigabyte an Daten. Diese Zahl wirkt erstaunlich klein, wenn man bedenkt, dass sich dahinter der komplette Bauplan eines Menschen verbirgt.
Zusammenfassung der Kapitel
1 Einleitung: Beschreibt die zunehmende Bedeutung von großen Datenmengen und motiviert die Notwendigkeit für effizientere Systeme zur Datenverarbeitung.
2 Problemstellung: Analysiert den Ist-Zustand des MySQL-basierten Systems und leitet daraus die Anforderungen an eine neue, skalierbare Lösung ab.
3 Grundlagen: Erläutert die relevanten Technologien wie ETL-Prozesse, Thrift, Hadoop, HDFS, HBase, MapReduce und Hive für das Verständnis der Arbeit.
4 Systementwurf: Entwirft die neue Server-Infrastruktur sowie die Datenstrukturen unter Verwendung von Hadoop-Komponenten.
5 Implementierung: Dokumentiert die technische Umsetzung des PHP-Hadoop-Frameworks sowie des Monitoring-Dienstes.
6 Evaluation: Validiert die Performance und Skalierbarkeit des neuen Systems mittels umfangreicher Benchmarks im Hadoop-Cluster.
7 Fazit: Fasst die Ergebnisse zusammen und gibt einen Ausblick auf mögliche zukünftige Entwicklungen und Verbesserungen.
Schlüsselwörter
Hadoop, HBase, Hive, Data-Warehouse, MySQL, PHP-Framework, Big Data, Migration, Skalierbarkeit, MapReduce, Performance-Analyse, Monitoring, Datenspeicherung, ETL-Prozess, Benchmarking
Häufig gestellte Fragen
Worum geht es in dieser Masterarbeit grundlegend?
Die Arbeit befasst sich mit der Migration einer leistungsschwachen MySQL-Monitoring- und Data-Warehouse-Lösung auf das Hadoop-Ökosystem, um mit steigenden Datenmengen besser umgehen zu können.
Was sind die zentralen Themenfelder der Arbeit?
Die zentralen Themen sind der Entwurf einer skalierbaren Architektur auf Basis von Hadoop, die Implementierung von Schnittstellen in PHP und die Leistungsbewertung der Migration durch Benchmarks.
Welches primäre Ziel verfolgt der Autor?
Das Hauptziel ist die Entwicklung eines Systems, das große Datenmengen performant verarbeiten kann, linear skalierbar ist und die bisherige Funktionalität der Überwachung und Statistik-Erstellung beibehält.
Welche wissenschaftliche Methode wird verwendet?
Es wird ein experimenteller Ansatz gewählt, bei dem zunächst das System konzipiert und implementiert wird, gefolgt von einer detaillierten Evaluation der Performance und des Ressourcenverbrauchs.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die Problembeschreibung, die technischen Grundlagen, den Systementwurf, die Implementierung des Frameworks und die umfassende Evaluation der Ergebnisse.
Durch welche Schlüsselwörter lässt sich die Arbeit charakterisieren?
Hadoop, HBase, Hive, Big Data, Skalierbarkeit, Monitoring und PHP sind prägende Begriffe dieser Arbeit.
Warum wird Hadoop anstelle von reinem MySQL verwendet?
Das bestehende MySQL-System stieß bei wachsenden Datenmengen an Grenzen hinsichtlich der Abfrageperformance und horizontalen Skalierbarkeit, die durch Hadoop-Dienste wie HDFS und HBase überwunden werden.
Welchen Einfluss hat der gewählte Primär-Schlüssel auf das Auto-Sharding in HBase?
Da der Primär-Schlüssel einen sequenziellen Charakter durch einen invertierten Zeitstempel aufweist, arbeitet das Auto-Sharding nicht volleffektiv, was zu einer stellenweise inhomogenen Lastverteilung führt.
- Arbeit zitieren
- Jonas Kress (Autor:in), 2012, Untersuchung der Migration einer MySQL basierten Monitoring & Data-Warehouse Lösung nach Hadoop, München, GRIN Verlag, https://www.hausarbeiten.de/document/214839