0

Debian 7 に CDH5 をインストールしました。単一ノードの疑似分散モードで MapReduce1 を使用して Hadoop を使用しています。

R内でRhipeを実行したいと思います。ダウンロード後、インストールしました:

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
4

1 に答える 1

1

rhinit() 関数は、HADOOP_HOME 変数で指定されたディレクトリに存在する Hadoop jar をロードしようとしています。この関数は、HADOOP_HOME 内のこれらの jar のみをクラス パスにロードするため、すべての Hadoop 固有の jar をそのディレクトリ自体に保持する必要があります。

これは、rhipe パッケージのzzz.Rファイルを調べればわかります。

于 2014-04-11T19:25:50.277 に答える