3

Linuxマシン(192.168.113.27)にHBaseをインストールし、JavaAPIを使用してWindowsマシンのEclipseIDEでサンプルコードを記述し、LinuxマシンのHBaseと通信しました。LinuxマシンのHBaseに「users」テーブルを作成しました。

以下のログに記載されているように、クライアントはzookeeperに接続されています。その後、「ユーザーテーブルのリージョンが見つかりません」という例外が発生します。これを解決するために、私はさまざまなスレッドを読み、さまざまなことを試しましたが、解決できませんでした。

/ conf / regionserversでローカルホストをLinuxマシンIP(192.168.113.27)に変更してみましたが、それでも同じエラーが発生します。

サンプルコード:

Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "192.168.113.27");
conf.set("hbase.zookeeper.property.clientPort","2181");

HTableInterface usersTable = new HTable(conf, "users");

クライアント側のログ:

13/02/06 10:58:32 INFO zookeeper.ClientCnxn:サーバー192.168.113.27/192.168.113.27:2181でセッションの確立が完了しました。sessionid= 0x13cae4bd91b0003、ネゴシエートされたタイムアウト= 40000

これは、動物園の飼育係とのつながりができたことを意味します。

さらにExcetionには、「users」テーブルのリージョンが見つかりませんでした。

org.apache.hadoop.hbase.client.NoServerForRegionException:10回試行した後、ユーザーのリージョンが見つかりません,,9999999999999。org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:951)at org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.locateRegion(HConnectionManager.java:856)at org.apache .hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:958)at org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.locateRegion(HConnectionManager.java:860)at org.apache.hadoop.hbase org.apache.hadoop.hbase.client.HTableの.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:817)。

4

2 に答える 2

0

このようなことを覚えていると思います。私の記憶が正しければ、これは Zookeper がプライベート IP アドレスを返すという事実に関係しています。

クライアント側の HBase 構成hbase.rootdirでは、ホスト名ではなく IP アドレスを指すようにする必要があります。

<configurtion>
    <property>
         <name>hbase.rootdir</name>
         <value>hdfs://<IP address>:<port>/<HBase location>/</value>
    </property>
</configuration>
于 2013-02-07T08:57:22.047 に答える