Im ersten Teil haben wir die Grundlagen des MapReduce erlebt, heute ist es dann endlich soweit, wir starten mit Hadoop, dem beliebtesten Framework um MapReduce verteilt über eine Menge Computer laufen zu lassen. Dafür steht heute ein nerviger Teil an: Die Installation. Wir verlassen uns auf die neueste Version von Cloudera CDH4, und hier gibt es eine gute Installationsanleitung. Aber irgendetwas klemmt immer, und daher habe ich meinen Weg aufgeschrieben, eine funktionierende lokale Version von CDH4 (pseudo-verteilt) zu installieren. Zwar lief das alles schon auf meinem Arbeitscomputer, doch ich wollte es auch nochmal auf meinen Privatlaptop bringen. Der ist aber schon auf Ubuntu 12.10, für das es noch kein offizielles CDH4 gibt und zu allem Unglück auch noch 32bit, was zu ein paar Problemen geführt hat – die Version für Ubuntu 12.04 läuft zwar im großen und ganzen, aber ein bisschen was muss man von Hand installieren. Vielleicht hilft das dem einen oder anderen.
Das Ziel ist, das neue (noch nicht produktionsreife) MapReduce 2.0 mit Yarn zu installieren – und zwar so schnell wie möglich, ohne Rücksicht auf Dinge die Systemadministratoren die Haare zu Berge stehen lassen. Solange wir es zum Testen auf unserem Privatlaptop verwenden, finde ich das in Ordnung, wir wollen schließlich mit den Daten arbeiten und nicht dem Ops-Team beitreten und Linux verwalten.
Für das übliche “alte” MapReduce in Hadoop gibt es hier ein großartiges Tutorial.

Installation

Beginnen wir langsam, in die Welt von Hadoop einzusteigen. Zunächst müssen wir sicherstellen, dass die richtige Java-Version installiert ist. Cloudera empfiehlt JDK 1.6.0_31, der Download dazu lässt sich hier finden. Für mein Linux nehme ich jdk-6u31-linux-i586.bin, wenn ihr 64 bit braucht, nehmt jdk-6u31-linux-x64.bin. Oracle nervt euch dann mit einer Anmeldung, ist aber kostenlos. Sagen wir, ihr speichert diese Datei in /home/joerg/installs:

cd ~/installs
chmod +x jdk-6u31-linux-i586.bin
sudo ./jdk-6u31-linux-i586.bin

Am Ende drückt nur Enter und ignoriert Registrierungswünsche. Bei mir ist Chrome so freundlich, sudo Browser erst gar nicht zu öffnen. Jetzt folgt eine wichtige Sache, das Setzen der Umgebungsvariable damit Hadoop das richtige Java findet. Die JDK ist jetzt in ~/installs installiert, öffnet also .bashrc in eurem Home und folgt die folgende Zeile am Ende ein (und denkt dran euren Benutzernamen/Ordernamen zu verwenden):

export JAVA_HOME=/home/joerg/installs/jdk1.6.0_31

Eventuell kanns Probleme mit den Zugriffsrechten geben. Für lokale Installationen mach ich da nie rum, und setz einfach alles auf 777. Natürlich darf man das nie für Server zu machen, aber was schert es uns auf unserem privaten Rechner:

sudo chmod -R 777 /home/joerg/installs/jdk1.6.0_31

Zurück in der Konsole vergesst nicht bash um die Umgebung neu zu starten, oder führt die obige Zeile in der Konsole als Befehl aus, um die Umgebungsvariable für die aktuelle Session zu setzen.
Als kleiner Tipp, bei allem was wir so installieren, ist es immer ratsam in die Konfiguration (meistens in /etc/hadoop/conf/…-env.sh o.ä.) auch noch JAVA_HOME zu setzen. Das hilft oft bei Problemen. Jetzt, falls ihr es noch nicht habt, installiert aptitude, das ist mir lieber als apt-get, weil es Suche einfacher macht…

sudo apt-get install aptitude

Cloudera ist so freundlich, für CDH4 ein repository anzubieten. Es gibt bislang noch keines für Ubuntu 12.10, daher fügen wir das für Ubuntu 12.04 hinzu und hoffen. Fügt am Ende von /etc/apt/sources.list folgende Zeile hinzu:

deb [arch=amd64] https://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh precise-cdh4 contrib
deb-src https://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh precise-cdh4 contrib

Und installieren ein wenig Hadoop:

sudo aptitude update
sudo aptitude install hadoop-conf-pseudo

Da bin ich dann in viele tragische Probleme gelaufen weil ein Paket, bigtop-jsvc, nicht für mein 32bit System verfügbar ist. Also habe ich versucht, es zu kompilieren.

cd ~/installs
sudo aptitude install git autoconf automake subversion build-essential dh-make debhelper devscripts reprepro sharutils
git clone https://github.com/apache/bigtop.git
cd bigtop
make bigtop-jsvc-deb
sudo dpkg -i output/bigtop-jsvc/bigtop-jsvc_1.0.10-1_i386.deb

Kommentare (2)

  1. […] dem schmerzhaften zweiten Teil, der Installation, haben wir jetzt ein Hadoop-System zum Spielen. Es läuft lokal, reagiert aber […]

  2. […] dem schmerzhaften zweiten Teil, der Installation, haben wir jetzt ein Hadoop-System zum Spielen. Es läuft lokal, reagiert aber […]