2

WindowsPCにR2.15.2をインストールしました。HadoopとHiveは別のPC上にあります。RHiveとその依存関係をRにロードしました。現在、Hiveに接続しようとしています。

> Sys.setenv(HIVE_HOME="/home/hadoop/hive-0.7.0-cdh3u0")
> Sys.setenv(HADOOP_HOME="/home/hadoop/hadoop-0.20.2-cdh3u0")
> library(RHive)
> rhive.env(ALL=TRUE)

Hiveホームディレクトリ:/home/hadoop/hive-0.7.0-cdh3u0
Hadoopホームディレクトリ:/home/hadoop/hive-0.7.0-cdh3u0
Hadoop Confディレクトリ:
RServeが
切断されていないHiveServerおよびHDFS
RHiveライブラリリスト
C:/ Program Files /R/R-2.15.2/library/RHive/java/rhive_udf.jar /home/hadoop/hive-0.7.0-cdh3u0/conf

> rhive.init()

[1]「HADOOPのスレーブファイルはありません。したがって、rhive.connect()を呼び出すときにhosts引数を渡す必要があります。」
.jnew( "org / apache / hadoop / conf / Configuration")のエラー:java.lang.ClassNotFoundException
さらに:警告メッセージ:
ファイル(file、 "rt")内:ファイルを開くことができません'/ home / hadoop / hadoop- 0.20.2-cdh3u0 / conf / slaves':そのようなファイルまたはディレクトリはありません

> rhive.connect(hdfsurl="hdfs://212.63.135.149:9000/")

.jnew( "org / apache / hadoop / conf / Configuration")のエラー:java.lang.ClassNotFoundException

結果は接続エラーです!

試しても rhive.connect(host = "212.63.135.149", port = 10000, hdfsurl="hdfs://212.63.135.149:9000/")、役に立たない。

4

3 に答える 3

1

数週間前に RHive をインストールしたときに同じ問題が発生しました。これは、rhive.init で設定されているクラスパスに含まれていない jar ファイルがあるためです。これらの jar ファイルの場所を示す引数 hive、libs、hadoop_home、hadoop_conf、hlibs を設定する必要があります。

最初にソースからインストールしました。これは rhive.init で動作しましたが、rhive.connect は正しく動作しませんでした。Cloudera マネージャーhttps://ccp.cloudera.com/display/CDH4DOC/Hive+Installationを使用して Hive をインストールすると、うまく機能しました。そのため、そこの指示に従うことをお勧めします。十分に文書化されています。

于 2012-12-13T09:28:40.690 に答える
1

rhive_udf.jarクラスパスを修正して修正しました(ビルド後にRHiveソースディレクトリにあります)

mkdir –p /usr/lib64/R/library/RHive/java
cp rhive_udf.jar //usr/lib64/R/library/RHive/java
chmod 755 /usr/lib64/R/library/RHive/java/rhive_udf.jar
R
> library("rJava")
> .jinit()
> .jaddClassPath("/usr/lib64/R/library/RHive/java/rhive_udf.jar")

次に、新しく追加されたクラスパスを次のようにテストします。

> .jclassPath()

リストに「/usr/lib64/R/library/RHive/java/rhive_udf.jar」が表示されます。

次に、R を再起動します。

于 2013-06-10T16:04:36.233 に答える