Tutorial: Hadoop met Rstudio-server en RHadoop (RevolutionAnalytics)

In deze blogpost ga ik stap voor stap uitleggen hoe je een eigen Big Data Analytics omgeving kan opzetten. Dit doen we op basis van VMware en Debian Linux.

Ik heb gemerkt dat er een uitgebreid stappenplan nodig is om tot het eindresultaat te komen. Neem dus even de tijd, wanneer je dit zelf wilt gaan proberen  🙂

Het doel

Het doel is om een virtuele Linux omgeving op te zetten, met daarin de volgende componenten:

  • Hadoop
    Apache Hadoop is een open-source raamwerk voor opslag en gegevensverwerking, op clusters van normale hardware. In deze tutorial maken we gebruik van de 2 belangrijkste componenten: Het HDFS bestandssysteem en MapReduce.
  • Rstudio-server
    Rstudio is de ontwikkeltool (IDE) voor de statistische programmeertaal R. In deze tutorial gebruiken we de webversie.
  • Fuse-DFS
    Fuse-DFS zorgt ervoor dat we het HDFS bestandssyteem kunnen aankoppelen – ook wel mounten genoemd – en kunnen benaderen als een normale directory.
  • RHadoop (RevolutionAnalytics)
    Deze aanvulling op R zorgt ervoor dat we instaat zijn om MapReduce taken uit te voeren en om het HDFS bestandssysteem vanuit R te kunnen benaderen.

 

Waarom een lokale omgeving?

Wanneer je van plan bent om grote hoeveelheden data te gaan verwerken, is het verstandiger om met een cluster te gaan werken. Helaas is het gebruik van een cluster vaak kostbaar en minder flexibel wanneer je nog in het ontwikkelstadium bent.

Deze tutorial is bedoeld voor mensen – die net als ik – graag aan de slag willen met het bouwen + verfijnen van algoritmes en deze op een wat kleinere dataset willen uitproberen. Een lokale omgeving op basis van VMware is hiervoor een handige oplossing.

Met een kleine aanpassing kan deze tutorial ook worden gebruikt bij het installeren van Hadoop + Rstudio met RHadoop op een Cloud server of VPS.

 

VMware player

Voor het maken van de virtuele linux machine maak ik gebruik van VMware player. Dit is de gratis versie van VMware, die voor niet-commerciële doeleinden gebruikt mag worden.

VMware player kan HIER worden gedownload.

Het is de bedoeling dat de VMware player geïnstalleerd is. De installatie hiervan is niet heel erg ingewikkeld en kan met de standaard instellingen – gewoon doorklikken en niets veranderen – worden uitgevoerd. Kijk voor installatietips op de website van VMware.

 

Downloaden en Installeren van de Debian Linux

Als besturingssysteem gebruik ik de Debian Linux distributie. De installatie hiervan heb ik op basis van de Live CD gedaan.

De Live CD kan HIER worden gedownload.

Maak een nieuwe VMware machine aan, met tenminste 15 GB aan harddisk ruimte en 4 GB aan RAM geheugen. Gebruik de .ISO file van Debian als CDROM image.

Bij het opstarten van de VMware machine start de Debian Live CD automatisch op. Vanuit het opstartmenu kan worden gekozen om Debian te installeren op de harde schijf van de virtuele machine.

De installatie van Debian kan ook met de standaard opties worden uitgevoerd. Voor een volledige installatiehandleiding, kijk op de Debian website.

Debian Installatie

Na de installatie zal een inlogscherm worden getoond. Hierin is de gebruiker weergegeven die is opgegeven tijdens de installatie.

Debian Installatie Voltooid

 

Inloggen als ‘root’ en het installeren van package updates.

In Linux systemen heeft de gebruiker ‘root’ alle rechten op het systeem. Het is dan ook nodig om met deze gebruiker de diverse installatiehandelingen uit te voeren.  Als eerste moet de Debian installatie worden voorzien van de laatste updates.

Open de Terminal. Dit kan via het menu: Applications -> Accessories. Kies hier de Terminal applicatie. Zie het onderstaande screenshot.

Debian - Menu

Een opdrachtprompt scherm wordt nu weergegeven.

Voer nu de volgende opdrachten uit:

su -l

Hiermee schakelen we over naar de ‘root’ gebruiker. Vul hier het wachtwoord in wat tijdens de installatie is opgegeven. Voer daarna de onderstaande opdrachten uit:

apt-get update
apt-get upgrade

Antwoord eventuele bevestigingsvragen met: Y (yes). De Debian installatie wordt nu van updates voorzien.

Installeer nu de volgende extra pakketten, door het volgende commando uit te voeren:

apt-get install vim screen build-essential java-package curl mc

 

Hadoop

Om Hadoop te kunnen installeren moeten er een aantal bronnen worden toegevoegd voor het downloaden van Debian installatiepakketten.

Gebruik hiervoor het ‘vi’ tekstbewerkingsprogramma.

Handige tip: (1) Nieuwe tekst kan worden toegevoegd met de ‘i’ toets. (2) Na het doorvoeren van de aanpassingen, op de ESC kop drukken. (3) Dan :wq intypen. 

Voer het onderstaande commando uit:

vi /etc/apt/sources.list

Voeg de volgende regels toe :

deb http://ftp.us.debian.org/debian wheezy main non-free contrib
deb http://security.debian.org/ wheezy/updates main non-free contrib

deb http://archive.cloudera.com/debian squeeze-cdh3 contrib
deb-src http://archive.cloudera.com/debian squeeze-cdh3 contrib

## R BACKPORTS FOR WHEEZY
deb http://cran.revolutionanalytics.com/bin/linux/debian wheezy-cran3/

Aangezien we Cloudera als bron hebben toegevoegd, moeten we de apt-key van Cloudera als vertrouwde sleutel toevoegen. Dit kan met het volgende commando:

curl -s http://archive.cloudera.com/debian/archive.key | sudo apt-key add –

 

Java SDK installatie

Zoals je wellicht al weet, is Hadoop gebouwd op Java. Om Hadoop te kunnen uitvoeren is het daarom nodig om een geschikte Java SDK te installeren. Om de Java SDK van Oracle te kunnen installeren op Debian Linux, is echter een workaround nodig.

Download de Java SDK (bijv. Java SE Development Kit 7u71 ) van de Oracle website. Je kan hiervoor de standaard meegeleverde webbrowser ‘Iceweasel’ gebruiken. Bewaar dit bestand in de /root/ directory.

Om dit installatiebestand te installeren, voer de onderstaande commando’s uit in de Terminal als root gebruiker:

make-jpkg jdk-7u45-linux-x64.tar.gz
dpkg -i oracle-j2sdk1.7_1.7.0+update71_i386.deb

Hierbij is “jdk-7u45-linux-x64.tar.gz” het bestand wat ik van de Oracle website heb gedownload. Dit kan verschillen.

 

Selecteren van de standaard JDK/JRE

Het is mogelijk om verschillende versies van de Java SDK of JRE (Runtime Environment) op het systeem te installeren. Bij het uitvoeren van een Java applicatie, gebruikt het systeem de versie die aangemerkt is als standaard versie.

Voer het onderstaande commando uit als root gebruiker:

update-alternatives –auto java
update-alternatives –display java

Controleer of hier de zojuist geinstalleerde Java SDK aanwezig is. Het is niet de bedoeling dat de JRE of een Open-Java variant als standaard ingesteld staat.

Indien de JDK niet aanwezig is, dan dient deze handmatig toegevoegd te worden. Dit kan met het onderstaande commando:

update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/j2sdk1.7-oracle/bin/java” 1

Om de juiste standaard versie te kiezen, voer de onderstaande opdrachtregel uit:

update-alternatives –config java

 

De Hadoop gebruiker

Het is de bedoeling dat Hadoop straks onder de ‘hduser’ gebruiker zal worden uitgevoerd. Daarnaast moet deze gebruiker ook lid zijn van de ‘hadoop’ groep. Deze gebruiker en groep moet handmatig aangemaakt worden. Dit kan met de onderstaande opdracht:

addgroup Hadoop
adduser –ingroup hadoop hduser
adduser hduser sudo

 

Generen van een SSH certificaat

Hadoop maakt bij de communicatie gebruik van SSH. Omdat het handmatig invoeren van een wachtwoord geen optie is, dient een certificaat aanwezig te zijn. Hierdoor kan er worden ingelogd zonder wachtwoord.

Voor het aanmaken van een SSH certificaat, voer met de ‘root’ gebruiker de onderstaande commando’s uit in de Terminal:

su hduser
ssh-keygen -t rsa -P ”
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
ssh localhost

De eerste keer krijg je de volgende melding te zien:

hduser@debian-hadoop:~$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is 02:7b:4a:ae:30:0f:ca:7e:e8:72:da:3c:f7:80:a1:ae.
Are you sure you want to continue connecting (yes/no)?

 Beantwoord ‘yes’ op deze vraag.

 

Uitschakelen van IPv6

Om de installatie eenvoudiger te maken, heb ik besloten om IPv6 uit te schakelen. Binnen mijn lokale omgeving heb ik geen last van een tekort aan IP adressen. Bij de installatie op een cluster of op servers met een extern internet IP adres kunnen andere afwegingen gelden.

Open de het bestand /etc/sysctl.conf met vi, voeg de volgende regels toe:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

 

Installeren van Hadoop packages

Nu we alle voorbereidingen hebben gehad, is het tijd om Hadoop daadwerkelijk te installeren. Omdat we eerder in deze tutorial de pakketbronnen voor deze pakketten hebben toegevoegd, kunnen we deze gemakkelijk met apt-get installeren.

Voer de onderstaande opdracht uit:

apt-get install hadoop-0.20 hadoop-0.20-namenode hadoop-0.20-datanode hadoop-0.20-jobtracker hadoop-0.20-tasktracker

Indien men om bevestiging vraagt, antwoord hierbij Y of yes.

Waneer apt-get klaar is met het installeren van de Hadoop pakketten, is Hadoop geïnstalleerd!

Kopiëren van hadoop-streaming.jar

In een later stadium hebben we het hadoop-streaming.jar bestand nodig. Om ervoor te zorgen dat het op de juiste plaats staat, moeten we het onderstaande commando uitvoeren:

cp /usr/lib/hadoop-0.20/contrib/streaming/hadoop-streaming-0.20.2-cdh3u6.jar /usr/lib/hadoop-0.20/

cp /usr/lib/hadoop-0.20/ hadoop-streaming-0.20.2-cdh3u6.jar /usr/lib/hadoop-streaming.jar

 

Aanpassen van hadoop-env.sh

Open het bestand /etc/hadoop-0.20/conf/hadoop-env.sh met het ‘vi ‘ tekstbewerkingsprogramma.

vi /etc/hadoop-0.20/conf/hadoop-env.sh

Voeg de volgende regels toe:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed “s:bin/java::”)

export HADOOP_OPTS=-Djava.net.preferIPv4Stack=true

 

Aanpassen .bashrc van de Hadoop user

Open het bestand /home/hduser/.bashrc met het ‘vi ‘ tekstbewerkingsprogramma.

vi /home/hduser/.bashrc

Voeg de volgende regels aan het einde van het bestand toe:

# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/lib/Hadoop
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=$(readlink -f /usr/bin/java | sed “s:bin/java::”)

# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs=”hadoop fs”
unalias hls &> /dev/null
alias hls=”fs -ls”

# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin

 

Hadoop configuratie

Nu we de Hadoop installatie hebben afgerond en de omgevingsvariabelen hebben ingesteld, gaan we ons richten op de Hadoop configuratiebestanden. Dit is nodig om bijv. de locatie van het HDFS bestandssysteem aan te geven en om de beveiligingscontrole uit te schakelen.

Open het bestand core-site.xml  met het vi tekstbewerkingsprogramma

vi /etc/hadoop/conf/core-site.xml

Voeg de volgende regels toe tussen de <configuration> tags:

<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>

<property>
<name>hadoop.tmp.dir</name>
<value> /scratch/hadoop/tmp<</value>
</property>

Open het bestand hdfs-site.xml  met het vi tekstbewerkingsprogramma

vi /etc/hadoop/conf/hdfs-site.xml

Voeg de volgende regels toe tussen de <configuration> tags:

<property>
  <name>dfs.name.dir</name>
  <value>/scratch/hdfs/namedir</value>
  <description>where HDFS namespace transaction logs are stored</description>
</property>

  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

<property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>

Open het bestand mapred-site.xml  met het vi tekstbewerkingsprogramma

vi /etc/hadoop/conf/mapred-site.xml

Voeg de volgende regels toe tussen de <configuration> tags:

<property>
    <name>mapred.job.tracker</name>
    <value>localhost:54311</value>
  </property>

 

HDFS opslag directory

In deze stap maken we de opslagdirectory aan op het bestandssysteem. Een Hadoop HDFS node bewaart zijn data in blokken op het lokale bestandssysteem. Uiteindelijk worden deze gegevens tussen de nodes gedistribueerd.

Veel van de problemen die bij een Hadoop installatie ontstaan, zijn vaak terug te leiden tot onjuiste permissies van het HDFS bestandssysteem. Bij de installatie van een cluster of op een server die verbonden is met het internet, dient uiteraard wel uitgebreid naar de beveiliging gekeken te worden.

Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

mkdir -p /scratch/hadoop/tmp
chown hduser:hadoop /scratch/hadoop/tmp
mkdir -p /scratch/hdfs/namedir
chown -R hduser:hadoop /scratch/hdfs
chown hduser:hadoop /scratch/hadoop/

 

Aanpassingen voor meerdere gebruikers

In mijn lokale omgeving wil ik met meerdere gebruikers gebruik kunnen maken van HDFS en MapReduce. Zo gebruik ik bijvoorbeeld de gebruiker ‘marcel’ om in te loggen bij Rstudio.

Voer de volgende opdracht uit onder de ‘root’ gebruiker in de Terminal:

chmod 777 /usr/lib/hadoop/logs/history/ -R
chmod 777 /var/log/hadoop/userlogs –R

Bovengenoemde aanpassing is niet te adviseren in een productieomgeving. Dit omdat hiermee elke gebruiker op het systeem schrijfrechten heeft op log directories van Hadoop.

Formatteren van het HDFS bestandssysteem

Om het HDFS bestandssysteem te kunnen gebruiken, moet het eerst worden geformatteerd. Deze handeling kan ook worden toegepast om het bestandssysteem leeg te maken en wanneer het corrupt is geraakt.

Voer de onderstaande opdracht uit onder de ‘root’ gebruiker in de Terminal:

su hduser –c ‘hadoop namenode –format’

Controleer of er geen foutmeldingen op het scherm verschijnen.

Starten van Hadoop

Hadoop kan worden gestart met het volgende commando:

su hduser
start-all.sh

Debian - Commandline

 Hadoop is nu gestart!

 

Installeren van Fuse-DFS

Om ervoor te zorgen dat we het HDFS bestandsysteem gemakkelijk kunnen benaderen vanaf een normale directory, gebruiken we Fuse-DFS.

Allereerst moet de hadoop-fuse package worden geinstalleerd. Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

apt-get install hadoop-0.20-fuse

Vervolgens moet de locatie (mountpoint) waar het HDFS bestandsysteem aangekoppeld word, worden aangemaakt. Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

mkdir /mnt/hdfs
chmod 755 /mnt/hdfs

Om daadwerkelijk het HDFS bestandsysteem te mounten, dient de onderstaande regel te worden uitgevoerd:

hadoop-fuse-dfs dfs://localhost:54310/ /mnt/hdfs/

Indien gewenst, kan deze regel in een Shell script worden verwerkt. Daarnaast kan met enige aanpassing dit ook worden verwerkt in de fstab. Op die manier kan automatisch bij het opstarten het HDFS worden gemount, maar dat is voor deze tutorial niet van belang.

Om te controleren of Fuse-DFS succesvol is geïnstalleerd en het HDFS is aangekoppeld, voer de volgende opdrachtregel uit:

ls /mnt/hdfs

root@debian-hadoop:/mnt# ls /mnt/hdfs
scratch
root@debian-hadoop:/mnt#

Rstudio-server

Voor het ontwikkelen van algoritmes in de statistische programmeertaal R, maak ik veelvuldig gebruik van Rstudio. De webversie van Rstudio is Rstudio-server.

Installeren van R-base

Om het basis installatiepakket van R te installeren, voer de volgende opdracht uit onder de ‘root’ gebruiker in de Terminal:

apt-get install r-base

Het is mogelijk dat er bij deze actie een waarschuwing ontstaat. Accepteer deze.

Installeren van OpenSSL en LibSSL

Rstudio-server – de versie waarop deze tutorial is gebaseerd – heeft een afhankelijkheid met een versie van libSSL die niet standaard door Debian Linux ondersteund wordt.

Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

apt-get install openssl libssl-dev

Download libssl0.9.8 HIER . Je kan hiervoor de meegeleverde webbrowser ‘Iceweasel’ gebruiken. Sla het bestand op in /root

Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

cd /root/
dpkg –i libssl0.9.8_0.9.8o-4squeeze14_i386.deb

Installeren van Rstudio-server

Nu alle benodigdheden aanwezig zijn, kan Rstudio-server worden geïnstalleerd. Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

apt-get install gdebi-core
apt-get install libapparmor1
wget http://download2.rstudio.org/rstudio-server-0.98.1083-i386.deb
gdebi rstudio-server-0.98.1083-i386.deb

Opmerking: Controleer de URL van het rstudio installatiebestand op de website van rstudio.org, omdat dit mogelijk kan veranderen bij een nieuwere versie.

Tijdens de installatie van Rstudio-server:

Rstudio Server

Rstudio is a set of integrated tools designed to help you be more
productive with R. It includes a console, syntax-highlighting editor that
supports direct code execution, as well as tools for plotting, history,
and workspace management.

Do you want to install the software package? [y/N]:

Antwoord: y

IP adres opzoeken en Rstudio openen

Om de webversie van Rstudio te openen, hebben we het IP adres van de virtuele machine nodig. Hiermee kunnen we vanaf een andere pc (bijv. het hoofdbesturingssysteem) inloggen op Rstudio.

Voer het volgende commando uit in de terminal:

ifconfig -a

In het resultaat is het IP adres zichtbaar (bijv. 192.168.2.30)

root@debian-hadoop:~# ifconfig –a
eth0      Link encap:Ethernet  Hwaddr 00:0c:29:1d:e8:61
          inet addr:192.168.2.30  Bcast:192.168.2.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:72364 errors:0 dropped:0 overruns:0 frame:0
         TX packets:26178 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:104695514 (99.8 MiB)  TX bytes:1772637 (1.6 MiB)
 
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
         UP LOOPBACK RUNNING  MTU:16436  Metric:1
         RX packets:17091 errors:0 dropped:0 overruns:0 frame:0
         TX packets:17091 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
         RX bytes:2985177 (2.8 MiB)  TX bytes:2985177 (2.8 MiB)

root@debian-hadoop:~#

Open de webbrowser en ga naar het volgende adres: http://192.168.2.30:8787

(Let op: Hierbij dien the IP adres 192.168.2.30 te worden vervangen met het daadwerkelijke IP adres)

Rstudio Server

Log vervolgens in met de gebruiker die tijdens de Debian is aangemaakt. De Rstudio IDE zal worden weergegeven.

Rstudio Server in actie

De Rstudio-server werkt!

Test vervolgens of je vanuit Rstudio naar het HDFS mountpoint kan bladeren. Dit kan door op de ‘…’ knop te drukken, rechts in het midden van het venster.

Voer de volgende padnaam in: /mnt/hdfs

Het HDFS bestandssysteem zal nu in de ‘Files’ tab van Rstudio te zien zijn

Rstudio Server - HDFS mount

 

RHadoop (rmr2, rhdfs)

RHadoop (RevolutionAnalytics) zorgt ervoor dat we vanuit R gebruik kunnen maken van de mogelijkheden van Hadoop. Hierbij gaat het voornamelijk om MapReduce en HDFS.

Installeren van de benodigdheden

Voordat met de installatie van RHadoop begonnen kan worden, is het belangrijk dat alle benodigdheden aanwezig zijn.

Installeer het r-cran-rjava pakket. Voer de volgende opdrachten uit onder de ‘root’ gebruiker in de Terminal:

apt-get install r-cran-rjava
R CMD javareconf

Installeer GIT (in de meeste gevallen is GIT al aanwezig).

apt-get install git

Nu moeten er ook verschillende R packages worden geinstalleerd. Start R, door het volgende commando als ‘root’ gebruiker uit te voeren.

R

Wanneer R is opgestart, voer de volgende R commando’s uit:

install.packages(c(‘Rcpp ‘, ‘rjson ‘, ‘bit64 ‘, ‘rJava ‘));

install.packages(c(‘RJSONIO ‘, ‘bitops’, ‘digest ‘, ‘functional’, ‘reshape2 ‘, ‘stringr ‘, ‘caTools ‘));

install.packages(c(‘dplyr ‘, ‘R.methodsS3 ‘, ‘Hmisc ‘));

 

De eerste keer kan worden gevraagd om een CRAN mirror te selecteren.

R kan weer worden afgesloten met behulp van: q()

Installeren van LibThrift

Om RHbase te kunnen installeren is libThrift nodig. Deze softwarebibliotheek is helaas standaard niet aanwezig in Debian Linux. Om toch te kunnen beschikken over libThrift, hebben we de mogelijkheid om het handmatig te compileren.

Installeer de volgende Debian pakketten:

apt-get install maven2
apt-get install libboost-dev libevent-dev libtool flex bison g++ automake pkg-config
apt-get install libboost-test-dev
apt-get install libmono-dev ruby1.8-dev libcommons-lang-java php5-dev

Download de source-code van Apache Thrift HIER. Dit kan met de meegeleverde webbrowser ‘Iceweasel’. Sla het bestand op in /root/

Pak het TAR GZIP bestand uit met het volgende commando:

tar zvxf thrift-0.8.0.tar.gz

Wanneer de bestanden zijn uitgepakt, kunnen we beginnen met het compileren. Voer hiervoor de volgende opdrachten uit:

cd thrift-0.8.0/
./configure
make
make install

Kopieer vervolgens de bibliotheekbestanden naar de juiste plaats. Voer het volgende commando uit:

cp /usr/local/lib/libthrift-0.8.0.so /usr/lib/

 

Downloaden RHadoop

Sinds enige tijd zijn de RHadoop bestanden afzonderlijk te downloaden. Ga naar de github pagina van RevolutionAnalytics en download de verschillende RHadoop bestanden.

Download de volgende bestanden en sla deze op in /root/rmr2. Hiervoor kan de meegeleverde webbrowser ‘Iceweasel’ worden gebruikt.

plyrmr_0.4.0.tar.gz
ravro_1.0.4.tar.gz
rhbase_1.2.1.tar.gz
rhdfs_1.0.8.tar.gz
rmr2_3.1.1.tar.gz

De naam/versie van de bestanden kan verschillen. De tutorial is gebaseerd op de bovenstaande versies.

Installeren van RHadoop

Voor dat met de installatie kan worden begonnen, moeten de onderstaande Java & Hadoop omgevingsvariabelen worden ingesteld. Dit kan door de onderstaande opdrachtregels onder de ‘root’ gebruiker uit te voeren:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed “s:bin/java::”)

export HADOOP_CMD=/usr/bin/Hadoop

export HADOOP_STREAMING=/usr/lib/hadoop-0.20-mapreduce/contrib/streaming/hadoop-streaming-2.0.0-mr1-cdh4.1.1.jar

 

Ga vervolgens naar de /root/rmr2 directory. Voer vanuit deze directory de volgende commando’s uit als ‘root’ gebruiker:

R CMD INSTALL ravro_1.0.4.tar.gz
R CMD INSTALL rhdfs_1.0.8.tar.gz
R CMD INSTALL rmr2_3.2.0.tar.gz
R CMD INSTALL plyrmr_0.4.0.tar.gz
R CMD INSTALL rhbase_1.2.1.tar.gz

 

Aanpassen van R omgevingsvariabelen

Omdat RHadoop ons de mogelijkheid geeft om Hadoop functionaliteit te kunnen gebruiken vanuit R, moet RHadoop weten waar de verschillende Hadoop en Java onderdelen te vinden zijn. Het is hiervoor nodig dat er binnen R omgevingsvariabelen worden ingesteld.

Open het volgende bestand /etc/R/Renviron met vi. Dit kan met het volgende commando:

vi /etc/R/Renviron

Voeg hierbij de volgende regels aan het einde van het bestand toe:

### Local Variables: ***
HADOOP_HOME=/usr/lib/Hadoop
HADOOP_CONF=/etc/hadoop/conf
HADOOP_STREAMING=/usr/lib/hadoop/hadoop-streaming.jar
HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec/
HADOOP_CMD=/usr/bin/hadoop
JAVA_HOME=/usr/lib/jvm/j2sdk1.7-oracle/

Het pad naar de Java JDK directory kan afwijken.

 

Omgevingsvariabelen voor gebruikers

Om het de Rstudio gebruikers gemakkelijker te maken, is het nodig om de onderstaande omgevingsvariabelen aan het .bashrc bestand van de betreffende gebruiker toe te voegen.

Open de .bashrc file van de gewenste gebruiker met vi, door het volgende commando:

vi /home/marcel/.bashrc

Hierbij is ‘marcel’ de gebruiker.

Voeg de volgende regels toe aan het .bashrc bestand:

export HADOOP_HOME=/usr/lib/Hadoop
export HADOOP_CONF=/etc/hadoop/conf
export HADOOP_STREAMING=/usr/lib/hadoop/hadoop-streaming.jar
export HADOOP_LIBEXEC_DIR=/usr/lib/hadoop/libexec/
export HADOOP_CMD=/usr/bin/hadoop
export JAVA_HOME=$(readlink -f /usr/bin/java | sed “s:bin/java::”)

 

Testen of alles werkt

Alle onderdelen zijn nu geinstalleerd!

Om te testen of alle componenten goed werken, kan het WordCount.R voorbeeld worden gebruikt (zie vorige blogpost).

 

Rstudio Server - In actie met RHadoop

 

 

Share on LinkedIn24Tweet about this on TwitterEmail this to someoneShare on Google+0Share on Facebook2

Geen reacties

No comments yet.

RSS feed for comments on this post.

Leave a comment

WordPress Themes