Rhadoop hdfs.init() 错误

Rhadoop hdfs.init() 错误

我最近安装了 CDH5.1.0 和 R 3.1.*,并且 rmr2、rJava 和 rhdfs 都正确安装了。(以及所需的软件包并设置了所需的环境变量)在安装 rhdfs 遇到一些问题后,我将其添加到我的 /usr/lib/R/etc/Renviron.site 文件中:

HADOOP_HOME="usr/lib/hadoop"
HADOOP_CMD="usr/bin/hadoop"
HADOOP_STREAMING="usr/lib/hadoop-mapreduce/hadoop-streaming-2.3.0-cdh5.1.0.jar"

然后我启动 R 并运行以下代码:

>library(rmr2)
 loading required packages ...
>library(rJava)
>library(rhdfs)

HADOOP_CMD=usr/bin/hadoop

be sure to run hdfs.init()
>hdfs.init()
sh: 1: usr/bin/hadoop: not found
Error in system(command, intern = TRUE) : error in running command

我曾见过与 Java 类路径类似的问题,但我在互联网上没有发现这个特定问题!任何帮助都将不胜感激。

答案1

我在 HDP 2.1 中遇到了同样的问题。来自 MapR 的以下链接GitHub 上的 RevR。看来LD_LIBRARY_PATH需要将该变量设置为rJava.so变量。

HADOOP_STREAMING="/usr/lib/hadoop-mapreduce/hadoop-streaming-2.2.0.2.0.6.0-76.jar"
HADOOP_CONF="/etc/hadoop/conf"
LD_LIBRARY_PATH="/usr/lib64/R/library/rJava/libs/rJava.so"
HADOOP_COMMON_LIB_NATIVE_DIR="/usr/lib/hadoop/lib/native/"

现在,在 RI 中运行 rhdfs 时会收到以下警告,但它似乎有效:

> hdfs.init()
14/11/12 09:20:42 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/11/12 09:20:43 WARN hdfs.BlockReaderLocal: The short-circuit local reads feature cannot be used because libhadoop cannot be loaded.

> hdfs.ls(".")
  permission owner group    size          modtime                  file
1 drwx------  root  root       0 2014-11-07 09:50   /user/root/.staging

相关内容