我在debian 7上安装了cdh5。我在单个节点伪分布式模式下使用mapreduce1与mapreduce1一起工作。

我想在R中运行rheee.下载后我安装了它:

sudo R CMD INSTALL Rhipe_0.73.1.tar.gz
.

然后我导出环境变量:

export HADOOP_CONF_DIR="/etc/hadoop/conf"
export HADOOP="/usr/lib/hadoop"
export HADOOP_BIN=/usr/lib/hadoop/bin
export HADOOP_HOME=/usr/lib/hadoop
.

运行R:

> library(Rhipe)
------------------------------------------------
| Please call rhinit() else RHIPE will not run |
------------------------------------------------
> rhinit()
Rhipe: Using Rhipe.jar file
Initializing Rhipe v0.73
14/04/11 12:21:08 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
java.io.IOException: No FileSystem for scheme: hdfs
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2385)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2392)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:89)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2431)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2413)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:368)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:167)
    at org.godhuli.rhipe.PersonalServer.run(PersonalServer.java:321)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at RJavaTools.invokeMethod(RJavaTools.java:386)
Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl,  : 
  java.lang.NullPointerException
> 
.

我缺少一些东西?

系统中使用的Java:

There are 2 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      auto mode
* 1            /usr/lib/jvm/j2sdk1.7-oracle/jre/bin/java        317       manual mode
  2            /usr/lib/jvm/java-6-openjdk-amd64/jre/bin/java   1061      manual mode
.

有帮助吗?

解决方案

rhinit()函数正在尝试加载存在于hadoop_home变量中指定的目录中的hadoop jar .since这个函数只将那些在hadoop_home中加载到类路径中的jars,你必须在该目录本身中保留所有Hadoop特定JAR。

如果您在rhee包中查看 zzz.r 文件,可以理解这个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top