2

Accumuloを使用してVMに接続しようとしています。問題は、Javaに接続できないことです。ApacheがスローするWebページを見ることができますが、コードで動作させることができません。これは本当の問題というよりは知識不足の問題だと思いますが、ドキュメントが見つかりません。すべての例では、zooServer名としてlocalhostを使用していますが、これは明らかに私には機能しません。

だから、ここに私のコードがあります:

  String instanceName = "accumulo-02"
  String zooServers = "192.168.56.5, accumulo-02.localdomain:9997"
  ZooKeeperInstance inst = new ZooKeeperInstance(instanceName, zooServers)
  ....

サーバーに接続できないため、残りは重要ではありません。

これも実際にはGroovyで書かれています。Javaの人たちのためにコードを変更しました。

編集:プログラムは私のコンピューターにあります。Accumulo、Hadoop、およびZookeeperはすべてVM上にあります。そのIPはそのIPであり、インスタンス名はその名前です。accumuloの構成では、「accumulo-02」はマスター、スレーブなどのドメインです。

4

1 に答える 1

3

ZooKeeperInstanceを使用してApacheAccumuloに接続するときにApacheZooKeeperノードのリストを正しく指定するには、 zooServersを次のように指定する必要があります。

  1. ZooKeeperがすでにセットアップされ実行されているhost:portコンマ区切りのリストスペースなし) 。
  2. TServerではなく、ZooKeeperのクライアントポートを使用していることを確認してください。(ポート2181はZooKeeperのデフォルトのクライアントポートです。ポート9997はTServerのデフォルトのクライアントポートです。)
  3. デフォルトのポート( 2181 )でZooKeeperを実行している場合は、 :portの部分を省略して、ホストのコンマ区切りのリストのみを残すことができます。または、非標準ポートにいくつかあり、いくつかがある場合は、それらを組み合わせることができます。 「 proxyhost、proxyhost:2182、thirdhost:2181 」のような標準ポート。
  4. クライアントから指定したものに到達でき、ポートが開いていてファイアウォールによってブロックされていない限り、IPアドレス ホスト名のどちらを使用してもかまいません。

ここでコンストラクタに関するJavaDocコメントを参照してください。

于 2013-03-21T06:06:09.157 に答える