0

Hadoop クラスター (マスター + 3 スレーブ) + Hive サーバーを実行しており、その上で RHive を使用したいと考えています。すべてのコンピューターに R 環境をインストールしました。Rserve はすべてのノードにインストールされ、RHive はマスターにインストールされました。マスターで RHive を実行しようとするとエラーが発生します。

> rhive.env()
Hive Home Directory : {Hive home directory}
Hadoop Home Directory : {Hadoop home directory}
Hadoop Conf Directory : {HAdoop configuration directory}
Default RServe List
x.x.x.8     hadoop-slave1 x.x.x.9     hadoop-slave2 x.x.x.10    hadoop-slave3
warning: cant't connect to a Rserver at x.x.x.8     hadoop-slave1:6311
warning: cant't connect to a Rserver at x.x.x.9     hadoop-slave2:6311
warning: cant't connect to a Rserver at x.x.x.10    hadoop-slave3:6311
Disconnected HiveServer and HDFS
Warning messages:
1: In socketConnection(host, port, open = "a+b", blocking = TRUE) :
  x.x.x.8     hadoop-slave1:6311 cannot be opened
2: In socketConnection(host, port, open = "a+b", blocking = TRUE) :
  x.x.x.9     hadoop-slave2:6311 cannot be opened
3: In socketConnection(host, port, open = "a+b", blocking = TRUE) :
  x.x.x.10    hadoop-slave3:6311 cannot be opened

Rserve は、slave1、slave2、および slave3 の TCP ポート 6311 でリッスンします。私はそれをテストしました:

nc -z hadoop-slave1 6311
Connection to hadoop-slave1  6311 port [tcp/*] succeeded!

接続の問題は何ですか?

4

1 に答える 1

0

{hadoop home}/conf/slaves にリストされている Rserve URL 'hadoop-slave1:6311' に対する RHive 呼び出し

R を開いて、この URL への接続をテストしました。

% R 

> library("Rserve") 

> c <- RSconnect(host = " hadoop-slave1", port = 6311)

その後、接続に失敗しました。

IPで接続しようとしましたが成功しました!

問題は DNS 設定でした!!!

考えられる解決策は 2 つあります: 1. DNS サーバーを修正すると、名前で接続できます 2. {hadoop home}/conf/slaves を開き、スレーブ名を IP に修正します

于 2013-05-22T23:31:18.417 に答える