我已经在 Linux 机器(192.168.113.27)上安装了 HBase,现在我在 Windows 机器上的 Eclipse IDE 中编写了一些示例代码,使用 JAVA API 与 Linux 机器上的 HBase 进行通信。我在 Linux 机器上的 HBase 上创建了“用户”表。
客户端连接到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
这意味着与zookeeper的连接已经建立。
在 Excetion 上进一步没有找到“用户”表的区域。
org.apache.hadoop.hbase.client.NoServerForRegionException: 10 次尝试后无法为用户找到区域,99999999999999。在 org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:951) 在 org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:856) 在 org.apache .hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:958) 在 org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:860) 在 org.apache.hadoop.hbase .client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:817) 在 org.apache.hadoop.hbase.client.HTable。