Im Oktober 2013 erblickte Apache™ Hadoop™ 2 das Licht der Welt. Die Hadoop Community entwickelte eine neue Version, die so einige Verbesserungen vorweisen kann. Im Pflichtenheft für Hadoop 2 wurden wesentliche Veränderungen beim Scheduling, Resource Management und allgemein Hadoop Execution festgehalten. MapReduce 2 (MR2) und YARN sind dafür die konkreten Implementierungen, die ab Hadoop 2 feste Bestandteile sind.

Wie sich dadurch Technologie und Architektur verändert haben, soll in diesem Beitrag nicht näher beleuchtet werden. Auf dem Cloudera Blog gibt es hierfür ausreichend Informationen: Migrating to MapReduce 2 on YARN.

Das Max OS X Problem
Setzt man bei einer CDH Installation auf den Cloudera Manager 4, wird einem so einiges an Ärger angenommen. Dank Wizard wird die Installation und Konfiguration kinderleicht, man braucht kein Team von Hadoop Experten, um eine Installation hinzustellen. Aber wie sieht es aus, wenn der Cloudera Manager 4 nicht eingesetzt werden kann? Und hier sind wir beim Punkt – Mac OS X ist nicht unterstützt. Damit ergeben sich zwei Möglichkeiten – auf die Cloudera VM zurückgreifen oder selbst installieren. Entscheidet man sich für die Installation auf dem Mac, so gibt es ein paar Hürden, die ich im Folgenden erläutern möchte.

Download & Installation
Zunächst sollte man für eine CDH 4.5.0 Installation das Paket “hadoop-2.0.0+1518” runterladen, auspacken und
$HADOOP_HOME  und $JAVA_HOME  in ~/.bash_profile  entsprechend setzen:

Damit ist die Installation bereits abgeschossen.

Hadoop Konfiguration
Alle Konfigurationen liegen im Pfad $HADOOP_HOME/etc/hadoop . HDFS und MapReduce werden wie folgt konfiguriert:

Anschliessend NameNode formatieren mit bin/hdfs namenode format  und Hadoop starten: sh sbin/startdfs.sh. Mit dem Browser aufhttp://localhost:50070 prüfen, ob die NameNode den SafeMode verlassen hat.

YARN Konfiguration
Für YARN folgende Anpassungen vornehmen:

Anschliessend YARN starten mit sh sbin/startyarn.sh  und mit dem Browser auf http://localhost:8088 prüfen, ob der ResourceManager bereit ist.

Fertig, sollte man meinen.

Issue 1
Um die Installation zu testen ist es am einfachsten einen MapReduce Job aus den Examples zu starten, z.B. Pi:

Auf einem Mac wird man dann folgende Fehlermeldung erhalten:

Ein Blick in den stderr Output verrät, dass $JAVA_HOME  offensichtlich nicht interpretiert wird.

Nach kurzer Recherche fand ich den Bug HADOOP-8717, der auf dieses Problem eingeht. Um das Problem zu lösen, müssen Anpassungen in diversen Skripten vorgenommen werden, die man aus dem Patch ableiten kann. Im Anschluss sollte der Example Pi Job erfolgreich durchlaufen und wie gewünscht Estimated value of Pi is 3.14127500000000000000 ausgeben.

CDH 4.5.0 mit YARN und MapReduce 2 ist nun für Mac OS X eingerichtet. Aber, Moment!

Issue 2
Wo ist der JobHistoryServer? Gemäss Cloudera Blog sollte das JobHistory Server Web UI unter http://localhost:19888 erreichbar sein. Die Konfiguration dafür befindet sich in mapred-default.xml –  mapreduce.jobhistory.webapp.address . Der JobsHistoryServer wird leider nicht mit start-yarn.sh gestartet und so führt der Link ins Leere – HTTP 404: This webpage is not available. Man kann ihn manuell starten, z.B. sbin/mrjobhistorydaemon.sh start historyserver config $HADOOP_CONF_DIR , oder aber folgende Scripte anpassen:

So, jetzt unter http://localhost:19888/ erreichbar. Toll.

Issue 3
Auch nach erfolgreichem Start des JobHistoryServer’s ist es immer noch nicht möglich, einen MapReduce Job während er läuft oder wenn er FAILEDbzw. SUCCEEDED war über den Tracking UI Link im ResourceManager anzusehen. Warum? Der ProxyServer ist nicht gestartet. Auf dem Cloudera Blog kann man nachlesen, welche Aufgabe dieser Server übernimmt, um das Wichtigste vorwegzunehmen – er muss laufen. Bevor er gestartet werden kann, muss folgende Konfiguration vorgenommen werden:

Anschliessend folgende Scripte anpassen und den ProxyServer starten.

Jetzt sollte die CDH4.5 Installation mit MapReduce 2 und YARN auf dem Mac OS X mit allen Bestandteilen funktionieren.

Happy Hadoop-ing!?

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *