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)。