2013-06-01 17 views
13

Ich versuche, Rhadoop auf Cloudera Hadoop Distro (ich kann mich nicht erinnern, wenn seine CDH3 oder 4), und laufen auf ein Problem: Rstudio Server scheint nicht meine globalen Variablen zu erkennen.RStudio-Server-Umgebungsvariablen werden nicht geladen?

In meiner /etc/profile.d/r.sh Datei, die ich habe:

export HADOOP_HOME=/usr/lib/hadoop 
export HADOOP_CONF=/usr/hadoop/conf 
export HADOOP_CMD=/usr/bin/hadoop 
export HADOOP_STREAMING=/usr/lib/hadoop-mapreduce/ 

Wenn ich R vom Terminal laufen, erhalte ich:

> Sys.getenv("HADOOP_CMD") 
[1] "usr/bin/hadoop" 

Aber wenn ich laufen Rstudio Server:

> Sys.getenv("HADOOP_CMD") 
[1] "" 

Und als Ergebnis, wenn ich versuche, rhdfs auszuführen:

> library("rJava", lib.loc="/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15") 
> library("rhdfs", lib.loc="/home/cloudera/R/x86_64-redhat-linux-gnu-library/2.15") 
Error : .onLoad failed in loadNamespace() for 'rhdfs', details: 
    call: fun(libname, pkgname) 
    error: Environment variable HADOOP_CMD must be set before loading package rhdfs 
Error: package/namespace load failed for 'rhdfs' 

Weiß jemand, wo ich meine Umgebungsvariablen setzen sollte, wenn nicht in dieser spezifischen r.sh-Datei?

Danke!

Antwort

11

Sie sollten Ihre Umgebungsvariablen in .Renviron oder Renviron.site festlegen. Ich denke, diese Dateien sind unter R_HOME/etc/Renviron.site definiert. Sie können mehr Informationen durch Eingabe erhalten:

> ?Startup 

Jemand hatte ein ähnliches Problem here und das ist, was er es zu lösen tat.

+0

... Ich habe HADOOP_CMD = "/ usr/bin/hadoop" meiner ~/.Rprofile, aber das schien nicht den Trick zu tun. Rstudio Server gibt immer noch ein "" Ergebnis für Sys.getenv ("HADOOP_CMD"). – AI52487963

+1

Arbeitete für mich Ich habe 'SOMEVAR =/somepath' zu'/usr/lib/R/etc/Renviron' hinzugefügt. 'R.home() ="/usr/lib/R "'. Ich habe RStudio neu gestartet und 'Sys.getenv ('SOMEVAR')' hat die Variable korrekt gefunden. – user1609452

+0

Entschuldigung, ich bin neu auf dem ersten Server und kann nicht herausfinden, wo das Renviron-Profil sitzen würde. In '/ usr/lib /' habe ich nur 'rududio-server' und Unterordner' bin', 'extras',' R', 'resources' und' www'. Gibt es einen empfohlenen Ort, um eine Renviron-Datei zu starten? – AI52487963

0

Sie sollten Ihre Umgebungsvariablen in Rstudio wie

Sys.setenv ("/ Pfad Hadoop")

gesetzt und Sie diese

+0

Dies ist eine effektive Möglichkeit, Pfadprobleme zu lösen, aber bitte beachten Sie, dass die korrekte Syntax 'Sys.setenv (HADOOP_CMD ="/path/to/hadoop ")' ist. – FvD

2

Hinweis dann versuchen, dass auf Windows, R für das aussieht .Renviron-Datei in /Users/<name>/Documents, während RStudio zu erwarten scheint, dass sich die .Renviron-Datei in /Users/<name>/ befindet. Hmm

Verwandte Themen