In verschiedenen Übungsaufgaben werden Konzepte aus der Vorlesung Big Data Engineering an praktischen Beispielen nachvollzogen.
Die einzelnen Aufgaben befinden sich in Unterverzeichnissen:
- Lab 1 (Fakten-/Graphmodell, Hadoop HDFS, Pail)
- Lab 2 (Batch Processing mit Hadoop MapReduce)
- Lab 3 (Komplexe Batch Layer Pipelines mit JCascalog)
- Lab 4 (Stream Processing mit Apache Kafka und Storm)
Die Aufgaben können auf allen Rechnern im Pool LI 137 (LKIT) bearbeitet werden. Die notwendige Umgebung variiert und wird in den Aufgaben erläutert. Grundsätzlich gilt:
- Die Basis aller Aufgaben bildet das vorliegende Git Repository auf github.
- Alle Aufgaben basieren auf Java. Hierzu wird eine Entwicklungsumgebung mit Java 1.7+ SDK (oder neuer), Eclipse JEE (oder eine andere Java IDE ihrer Wahl), Maven, und Git benötigt. Diese Umgebung sollte lokal und nativ auf dem Entwicklungsrechner vorliegen (auf den LKIT-Rechnern ist dies gegeben).
Ein Hadoop Cluster besteht aus Master- und Slave-Knoten. Im LKIT gibt es einen Master und 20 Slaves. Die Adressen folgen dem folgenden Schema:
Der Cluster dient aktuell als verteiltes Dateisystem (HDFS - Hadoop Distributed File System) und verteilter Ressourcen Manager (Hadoop YARN - Yet Another Resource Negotiator) für verteilte Anwendungen (auf Basis von Hadoop Map Reduce und Cascalog).
Der Master Knoten dient im HDFS als sog. NameNode zur Verwaltung von Namen und Blöcken. Zudem ist er YARN ResourceManager zur Verwaltung verteilter Rechenaufträge. Die Slave Knoten dienen als HDFS DataNodes und YARN NodeManager.
Die Nutzung des Clusters erfolgt über die Kommandozeile (Shell). Hierzu dient das Skript hadoop
. Im LKIT ist das Skript unter /usr/local/opt/hadoop-2.7.3/bin/hadoop
installiert. Sie können es zur einfacheren Nutzung der $PATH
Umgebungsvariable hinzufügen. Ergänzen sie dazu folgende Zeile in ihrer ~/.profile
Datei:
PATH="$PATH:/usr/local/opt/hadoop-2.7.3/bin"
Für das Labor wird je Teilnehmer ein Verzeichnis auf dem HDFS zur Verfügung gestellt. Dieses hat folgendes Muster:
/user/<IZ-Name>/
Das Verzeichnis muss für jeden Teilnehmer erst eingerichtet werden. Bitte wenden sie sich dazu an einen Betreuer.
In Hadoop gibt es einige Web-basierte Werkzeuge. Die folgenden Links funktionieren nur im Intranet der Hochschule (auch über eine VPN Verbindung von außen).
-
Die NameNode Web UI zeigt den Status und Inhalt des HDFS.
-
Die YARN Web UI dient zur Beobachtung von MapReduce und anderen YARN Anwendungen.
Falls Sie die Laboraufgaben nicht im LKIT bearbeiten möchten, können Sie dies per VPN und SSH auch von außerhalb durchführen.
-
Öffnen Sie eine Konsole und starten Sie eine SSH Verbindung zum Login Server der Hochschule.
ssh <IZ-Name>@login.hs-karlsruhe.de
-
Vom Login Server aus können Sie sich nun wiederum mittels SSH auf einem beliebigen LKIT Knoten einwählen.
ssh <IZ-Name>@iwi-lkit3-<Range-Number>.hs-karlsruhe.de
Die
Range-Number
ist eine Zahl zwischen 01-20.Sie können auch eine VPN Verbindung zum Hochschulnetz aufbauen (Server: vpn.hs-karlsruhe.de) und sich dann von außerhalb direkt auf den LKIT Rechnern per SSH anmelden, ohne den Login Server zu benutzen.
Folgender Gist beschreibt, wie die Hadoop Anwendungen der Laborübungen auf einem entfernten Windows 10 Rechner gestartet werden können und von dort auf den LKIT-Cluster zugreifen:
https://gist.github.com/SheepSays/b96397ea6d93738e47304e7a129f15a0
Dies funktioniert z.B. vom Windows Rechner zuhause mit VPN Verbindung zur Hochschule.