R 没有连接到 HDFS

标签 r hadoop mapreduce java-6 rhadoop

为什么 R 没有连接到 Hadoop?

我正在使用 R 通过“rhdfs”包连接到 HDFS。安装“rJava”包并加载 rhdfs 包。

HADOOP_CMD 环境变量在 R 中使用:

Sys.setenv(HADOOP_CMD='/usr/local/hadoop/bin')

但是当给出hdfs.init()函数时,会产生如下错误信息:

sh: 1: /usr/local/hadoop/bin: Permission denied
Error in .jnew("org/apache/hadoop/conf/Configuration") : 
java.lang.ClassNotFoundException
In addition: Warning message:
running command '/usr/local/hadoop/bin classpath' had status 126 

此外,'rmr2' 库已加载,并键入以下代码:

ints = to.dfs(1:100)

生成下面给出的消息:

sh: 1: /usr/local/hadoop/bin: Permission denied

R-Hadoop 包只能由“root”用户访问,而不能由“hduser”(Hadoop 用户)访问,因为它们是在“root”用户运行 R 时安装的。

最佳答案

很简单,只有两个原因会导致出现此类问题

1) 路径错误 2)没有那个 jar 的特权/许可 不仅包括其他系统路径。如下所示。

Sys.setenv(HADOOP_HOME="/home/hadoop/path")

Sys.setenv(HADOOP_CMD="/home/hadoop/path/bin/hadoop")

Sys.setenv(HADOOP_STREAMING="/home/hadoop/path/streaming-jar-file.jar")

Sys.setenv(JAVA_HOME="/home/hadoop/java/path")

然后包括 ibrary(rmr2) 和 library(rhdfs) 路径,肯定不会发生错误。

但是你的问题是权限问题。因此,作为 root 授予您所有权限 (755),然后运行该 jar 文件,肯定不会显示该错误。

关于R 没有连接到 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29658894/

相关文章:

scala - 在Spark 2中获取CastClassException:java.lang.ClassCastException:java.util.ArrayList无法转换为org.apache.hadoop.io.Text

hadoop - Hadoop MR 应用程序中 Reducer 的动态数量

mongodb - Pig MongoLoader 异常加载带有 UUID 的数据

java - 如何在 Mapreduce 中生成 UUID?

css - 根据书籍颜色主题自定义具有背景颜色的 block

rstudio - 是否可以在后台运行代码

hadoop - sqoop导出命令,用于在hdfs中具有空格的数据

hadoop - 将具有不同ID的MR作业提交到Hadoop集群

R ggplot - 如何在条形图上方旋转计数

machine-learning - R-Studio错误 "> "标志变成了 "+"