我試圖在Cloudera的hadoop發行版上運行rhadoop(我不記得它的CDH3或4),並且遇到了一個問題:Rstudio服務器似乎無法識別我的全局變量。Rstudio-server環境變量未加載?
在我/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文件?
謝謝!
嗯...我加入 HADOOP_CMD = 「在/ usr/bin中/ Hadoop的」 了我的〜/ .Rprofile,但似乎並沒有這樣的伎倆。 Rstudio服務器仍然爲Sys.getenv(「HADOOP_CMD」)提供結果。 – AI52487963
爲我工作我將'SOMEVAR =/somepath'添加到'/ usr/lib/R/etc/Renviron'。 'R.home()=「/ usr/lib/R」'。我重新啓動了RStudio,並且'Sys.getenv('SOMEVAR')'正確地找到了該變量。 – user1609452
對不起,我是rstudio-server的新手,似乎無法弄清楚Renviron配置文件的位置。在'/ usr/lib /'中,我只有'firstudio-server'和子文件夾'bin','extras','R','resources'和'www'。有推薦的地方啓動一個Renviron文件嗎? – AI52487963