从windows java应用程序访问虚拟盒hbase

hk8txs48  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(322)

嗨,我是hbase的新手,正在尝试练习。首先我想介绍一下系统配置。背景:
我使用的是Windows7并安装了oracle虚拟盒。然后在虚拟机上安装了ubuntu服务器,然后在ubuntu上安装了hbase0.98-hadoop2-bin.tar.gz。我已经在独立模式下配置了hbase。我的hbase-site.xml文件如下:

<Configuration>
<property>
<name>hbase.rootdir</name>
<value>file:///home/abc/hbase</value>
</property>

<property>
<name>hbase.zookeeper.property.rootDir</name>
<value>/home/abc/zookeeper</value>
</property>
</configuration>

现在我的hbase shell运行良好,它创建了一个表。我可以把价值观和得到他们。
主要问题:
如前所述,我使用的是windows,所以我在eclipse上用java编写了一个简单的程序来命中hbase(基本上是在virtualbox上)。但我有以下例外:

Exception in thread "main" org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connect to ZooKeeper but the connection closes immediately. This could be a sign that the server has too many connections (30 is the default). Consider inspecting your ZK server logs for that error and then make sure you are reusing HBaseConfiguration as often as you can. See HTable's javadoc for more information.
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:155)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getZooKeeperWatcher(HConnectionManager.java:990)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.setupZookeeperTrackers(HConnectionManager.java:303)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.<init>(HConnectionManager.java:294)
    at org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:168)
    at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:146)
    at HBaseConnector.main(HBaseConnector.java:151)
Caused by: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
    at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1021)
    at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1049)
    at org.apache.hadoop.hbase.zookeeper.ZKUtil.createAndFailSilent(ZKUtil.java:903)
    at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.<init>(ZooKeeperWatcher.java:133)

我的代码:main函数中的代码如下:

Configuration config = HBaseConfiguration.create();
HTable table = new HTable(config, "myLittleHBaseTable");
Put p = new Put(Bytes.toBytes("myLittleRow"));

我想要什么?
我做错什么了?有没有办法从windows java程序访问hbase(驻留在虚拟机上)?
加上:
我研究了以前提出的问题,但没有一个对我有用。
任何帮助都将不胜感激。

slmsl1lt

slmsl1lt1#

您是否尝试将虚拟机的网络设置设置为“桥接适配器”而不是“nat”,然后从主机系统中尝试打开浏览器并键入guestip:hbase_master_port“(例如192.168.1.100:60010)它应该打开管理母版页。

相关问题