Big Data - Small Start

„Daten sind das Öl des 21. Jahrhunderts“. Dieses Zitat ist mittlerweile in allen Branchen bekannt und gleichzeitig die Message wo die Reise hingehen soll: Big Data. Klar ist, dass man sich auch als IT-Consultant mit der Materie auseinandersetzen muss, insbesondere wenn man einen Datenbank-bzw. Data Warehouse Background hat. Wenn man heute Big Data sagt, so kommt man an Hadoop nicht vorbei. Das Hadoop-Ökosystem mit der Basis des HDFS-Filesystems und des Map-Reduce-Algorithmus bietet eine Vielzahl von Werkzeugen mit denen man eigentlich alle Anforderungen hinsichtlich Analyse und Datenspeicherung abdecken kann. Es gibt mehrere Möglichkeiten, wie man sich mit Hadoop auf einfache und kostengünstige Weise auseinandersetzen kann ohne gleich eine komplexe Infrastruktur aufbauen zu müssen. Auf die grundsätzliche Funktionsweise von Hadoop möchte ich hier nicht näher eingehen. Hadoop ist ein Apache Open Source Projekt, aber es gibt Hersteller, die entsprechende Bundles anbieten, wie es auch bei anderer Open Source Software mittlerweile üblich ist. Ich habe mir zwei Hersteller genauer angeschaut: MapR und Cloudera. Die Auswahl erfolgte subjektiv. Aus Zeitgründen wurden keine weiteren Anbieter betrachtet (z.B. Hortonworks), welche ggf. ähnliche Möglichkeiten bieten.
Bei beiden ist es möglich, sowohl eine Cloud-Lösung testweise aufzusetzen (z.B. über AWS) oder eine Appliance als Sandbox zu laden und in einer virtuellen Maschine (VM) zu installieren. Ich habe Letzteres getestet. Minimale Voraussetzung ist ein Rechner mit 8 GB Speicher und einer installierten VM. Bei mir ist es ein Ubuntu-Linux-Testrechner mit 8GB RAM und der VM-Lösung von Oracle (Virtualbox).
Beide Appliances (MapR und Cloudera) können von der Homepage als Download angefordert werden und werden anschließend in der Virtualbox als Appliance importiert. Das funktioniert reibungslos. Lediglich bei MapR wird in den Voreinstellungen 6GB max. virtueller Speicher verlangt, was bei einer Gesamtgröße von 8GB einige Warnungen hervorruft, da ggf. nicht mehr genügend Speicher für das Gesamtsystem zur Verfügung steht. Die Cloudera-Sandbox begnügt sich mit 4GB initial. Dennoch liefen beide Systeme und die mitgelieferten Tutorials konnten abgearbeitet werden.
Mit diesen Tutorials lassen sich in beiden Fällen das System und die enthaltenen Werkzeuge Schritt für Schritt erkunden. Beispieldaten werden ebenso mitgeliefert. Grundsätzlich hängt es natürlich davon ab, ob man eher ein Administrator oder ein Entwickler/Analytiker ist, welche konkreten Beispiele von Interesse sind.

MapR
MapR beinhaltet auf seiner Plattform herstellerspezifische Erweiterungen für HDFS und HBase (MapR-DB und MapR-DB), welche Performance und Skalierung weiter optimieren sollen (z.B. durch variable Blockgrößen, etc.). Für Administratoren wird im Tutorial u.a. der Umgang mit dem MapR Control System (MCS) gezeigt. Über dieses Dashboard-ähnliche System kann der Systemstatus überwacht werden, die Node-Administration erfolgen, etc. Die Entwickler-Beispiele möchte ich hier kurz skizzieren. Als Einstieg wird HUE (Hadoop User Experience) verwendet, eine Weboberfläche bzw. Portal unter welcher verschiedene Entwickler- bzw. Analyse-Werkzeuge zu finden sind und genutzt werden können.

Beispiel 1: HIVE
Import von Kundendaten (customer.csv) in das HDFS bzw. MapR-FS mit dem Filebrowser.
Anschließende Anlage von Tabellen für diese Kundendaten mit dem Metastoremanager.
Auswertung der Kundendaten mit HIVE (HQL).

Beispiel 2: PIG und OOZIE
Import von unstrukturiertem Text (us_constitution.txt) in das HDFS bzw. MapR-FS mit dem Filebrowser.
Anschließende Zählung und Gruppierung der enthaltenen Begriffe per MapReduce-Algorithmus mit PIG.
Anlage eines Jobs mit dem Job Designer für diese Aufgabe.
Definition eines Workflows für diesen Job mit OOZIE (Workflow Designer).

Neben HUE kann man natürlich auch Werkzeuge direkt im Terminal benutzen (Beispiele 3 und 4).

Beispiel 3: DRILL
Apache Drill erlaubt ANSI SQL kompatible Abfragen auf verschiedene Datenquellen (MapRDB/HBase, JSON-Files, CSV-Files, etc.) und kann diese kombinieren.
Die Drill-Shell wird im Terminal gestartet, der betr. Workspace ausgewählt und schon kann man per SQL auf die Daten zugreifen.

Beispiel 4: MAHOUT und Elasticsearch
Zu guter Letzt noch ein etwas umfangreicheres Machine-Learning-Beispiel:
Eine Filmdatei (movies.dat) wird per Python-Skript in ein JSON-Format konvertiert und anschließend in Elasticsearch zur Indizierung geladen
Eine andere Datei enthält Besucherbewertungen zu Filmen. Über die Command-Shell im Terminal wird ein Mahout-Job (itemsimilarity) gestartet, um in diesen Bewertungen Übereinstimmungen zu finden und in einer Ausgabedatei abzulegen.
Die betr. Übereinstimmungen werden als Indikator in Elasticsearch zum jeweiligen Film hinzugefügt.
Danach ist es möglich, Besuchern per Query in Elasticsearch Filme zu empfehlen, die der Bewertung seiner bereits gesehenen Filme entsprechen.
Aufbauend auf diesem einfachen Beispiel gibt es zusätzliche Informationen zum Thema „Recommendation Engine“.

Cloudera
Bei Cloudera funktioniert es ähnlich. Die Tutorials sind noch etwas didaktischer aufgebaut. Es werden drei verschiedene Use Cases vorgestellt, welche aufeinander aufbauen und den Nutzen gegenüber Stakeholdern darstellen sollen. Da sich die Werkzeuge aus dem Hadoop-Ökosystem bei beiden aber nicht groß unterscheiden werde ich auf die Einzelbeispiele bei Cloudera nicht eingehen.

Fazit
Die Sandboxes der gängigen Hersteller bieten eine gute Gelegenheit erste Bekanntschaft mit dem Hadoop-Ökosystem zu machen ohne große Investitionen tätigen zu müssen. Beide Hersteller liefern gute Tutorials mit. Während Cloudera zusätzlich Bezug auf Business Cases nimmt, bietet MapR neben der Test-Appliance kostenlose Online-Kurse an, um sich Hadoop-Grundlagen anzueignen.
November 2019
July 2019
November 2018
April 2018
October 2017
February 2017
November 2016
August 2016
June 2016
April 2016
March 2016
February 2016