In diesem 2-tägigen Seminar lernen Sie als Data Scientist:in Apache Hadoop® zur Bearbeitung von Big Data kennen. Der Schwerpunkt liegt dabei auf umsetzbaren ersten Schritten und den Grundlagen, die an einem praktischen System erlernt werden: Wir stellen Ihnen ein virtuelles Apache Hadoop-System während der Schulung als virtuelle Maschine zur Verfügung - dabei handelt es sich um ein Pseudo-Distributed-System. Die VM wird nach Abschluss des Seminars zur Verfügung gestellt. Alternativ kann auch ein Fully Distributed Hadoop System auf Amazon AWS (1 Master und 2 Slaves) genutzt werden. Bitte sprechen Sie uns dazu an!
Inhalte: Die Inhalte werden so durch den Dozenten seit einigen Jahren an der htw in Berlin Studierenden im Master vermittelt. Durch die Seminarerfahrung ist der vermittelte Stoff über die Jahre hinsichtlich der relevanten Themen optimiert worden.
Zuerst bekommen Sie die grundlegende Idee des Apache Hadoop-Ansatzes vermittelt: Wie ist es möglich, Big Data durch Nutzung vieler einzelner Rechner effizient - und auch schneller als auf einem einzelnem System - zu analysieren. Dazu dient der Map-Reduce-Ansatz, d.h. der Datenbestand wird zerlegt, dann werden Teile auf den einzelnen Rechnern (Slaves) analysiert und die Teilergebnisse wieder zusammengefügt (das passierte früher auf dem Master-Rechner, heute kann dies flexibler gehandhabt werden). Natürlich lassen sich nur Probleme mittels Apache Hadoop System analysieren, die sich auf verschiedene Rechner verteilen lassen.
Diesen Ansatz nutzen wir direkt im Hadoop-System in der VM um erste Textdateien zu analysieren.
Im nächsten Schritt lernen Sie dann den zweiten wesentlichen Bestandteil des Apache Hadoop-Systems kennen: das Hadoop Distributed File System (HDFS). Dieses System sorgt dafür, dass Big Data über viele Rechner hinweg verteilt gespeichert werden kann, und zwar auch Datensätze, die größer als die Kapazität eines einzelnen Rechners im Verbund sind. Um eine möglichst hohe Ausfallsicherheit zu gewährleisten, werden Datensatzteile parallel auf mehreren Rechnern gespeichert (Redundanz). Dabei lässt sich der Replikationsfaktor variieren - wir nutzen den Replikationsfaktor, um generell die einstellbaren Optionen im Apache Hadoop System kennenzulernen.
Nun können wir abschließend alle Werke Shakespeares in das HDFS befördern und mittels Map Reduce Ansatz einen Wordcount durchführen, um die Häufigkeiten (oder auch Wortlängen) der einzelnen Wörter in Shakespeares Werken zu analysen.
Die Kontrolle der beiden Teilsysteme kann durch den Web-Browser erfolgen. Das HDFS kann sehr bequem auch über den Browser genutzt werden, so ist es möglich, über den Browser Daten in das HDFS zu importieren und auch zu exportieren. Das Interface für Map-Reduce erlaubt die Kontrolle der abgeschickten Jobs.
Die Programmierung des Hadoop-Systems findet durch das Erstellen von Mapper und Reducer-Programmen in Java statt. Da Java nicht unbedingt die am einfachsten zu erlernende Sprache ist und auch einiges an Testen nach sich zieht, sind einige sehr hilfreiche Spftwarepakete verfügbar, die die Nutzung von Skriptsprachen oder SQL erlauben, um Jobs im Hadoop-System zu ermöglichen. Zu nennen sind hier insbesondere Apache Pig und Apache Hive.
Apache Pig erlaubt das Erstellen von Hadoop Jobs in einer relativ einfachen Skriptsprache. Diese wird vermittelt und erste Jobs werden geschrieben, die im Hadoop System umgesetzt werden.
Apache HIVE hat eine Doppelfunktion: Zum einen können Datenbestände mittels HIVE SQL analysiert werden. Daneben stellt HIVE einen Meta-Storage zur Verfügung, in dem Datenbestände im HDFS registriert werden. Eine der Kernprobleme beim Aufbau heutiger Data Lakes sind die Metadaten - fehlen diese oder werden unzureichend gepflegt, so wird der Data Lake sehr schnell zum Data Swamp - es ist schlicht nicht klar, welche Daten sich im Data Lake befinden und was deren Eigenschaften sind. Beide Teile werden im Seminar vermittelt, zum einen das Registrieren von Datensätzen in Apache HIVE und zum anderen die Nutzung von HIVE SQL für die Analyse von Daten.
Der Kurs wird durch eine Fallstudie abgerundet, in der wir Log-Files analysieren wollen. Dazu nutzen wir die bisher kennengelernten Systeme.
Nach Abschluss des Kurses sollten Sie ein grundlegendes Verständnis durch das praktische Arbeiten mit einem Hadoop®-System erworben haben. Der weiteren praktischen Umsetzung steht dann nichts mehr im Wege!