Rstudio-server环境变量没有加载?

时间:2013-06-01 00:11:16

标签: r hadoop cloudera rstudio rstudio-server

我正在尝试在Cloudera的hadoop发行版上运行rhadoop(我不记得它的CDH3或4),并且遇到了一个问题:Rstudio服务器似乎无法识别我的全局变量。

在我的/etc/profile.d/r.sh文件中,我有:

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/

当我从终端运行R时,我得到:

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

但是当我运行Rstudio服务器时:

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

结果,当我尝试运行rhdfs时:

> 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'

有没有人知道如果不在特定的r.sh文件中我应该把我的环境变量放在哪里?

谢谢!

3 个答案:

答案 0 :(得分:12)

您应该在.RenvironRenviron.site中设置环境变量。我认为这些文件是在R_HOME/etc/Renviron.site下定义的。您可以输入以下内容获取更多信息:

> ?Startup

有人遇到类似的问题here,这就是他解决问题的方法。

答案 1 :(得分:3)

请注意,在Windows上,R在/Users/<name>/Documents中查找.Renviron文件,而RStudio似乎期望.Renviron文件位于/Users/<name>/

答案 2 :(得分:0)

您应该在Rstudio中设置环境变量,如

Sys.setenv(&#34; / hadoop路径&#34;)

然后你试试这个