从Windows Java应用程序访问虚拟框hbase [英] Access virtual box hbase from windows java application

查看:283
本文介绍了从Windows Java应用程序访问虚拟框hbase的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

您好我是hbase的新手,并试图练习它。首先我想描述系统配置。
背景:

我使用Windows 7并安装了Oracle Virtual Box。然后,在Ubuntu上安装Ubuntu服务器后,我在Ubuntu上安装了hbase0.98-hadoop2-bin.tar.gz。我已经在独立模式下配置了hbase。我的hbase-site.xml文件如下所示:

 <配置> 
<属性>
<名称> hbase.rootdir< /名称>
< value> file:/// home / abc / hbase< / value>
< / property>

<属性>
<名称> hbase.zookeeper.property.rootDir< / name>
<值> / home / abc / zookeeper< /值>
< / property>
< / configuration>

现在我的hbase shell工作正常,它创建表。我可以把价值观并得到它们。



主要问题:

简单的java程序在eclipse中打hbase(这基本上是在虚拟框中)。但我得到以下异常:

 线程main中的异常org.apache.hadoop.hbase.ZooKeeperConnectionException:HBase能够连接到ZooKeeper,但连接立即关闭。这可能表示服务器连接太多(默认为30)。考虑检查您的ZK服务器日志中是否存在该错误,然后确保尽可能经常重复使用HBaseConfiguration。有关更多信息,请参阅HTable的javadoc。 
at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher。< init>(ZooKeeperWatcher.java:155)
at org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.getZooKeeperWatcher(HConnectionManager .java:990)
在org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.setupZookeeperTracker(HConnectionManager.java:303)
在org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation 。< init>(HConnectionManager.java:294)
位于org.apache.hadoop.hbase.client.HConnectionManager.getConnection(HConnectionManager.java:156)
位于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)
导致:org.apache.zookeeper.KeeperException $ ConnectionLossException:KeeperErrorCode = ConnectionLoss for / hbase $ b $在org.apache.zookeeper.KeeperExcepti (org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java: 1021)
在org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1049)
在org.apache.hadoop.hbase.zookeeper.ZKUtil.createAndFailSilent(ZKUtil.java:903)
at org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher。< init>(ZooKeeperWatcher.java:133)

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

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

我需要什么



我做错了什么?
我有没有办法从windows java程序访问hbase(驻留在虚拟盒子上)?



PLUS:



我学习了以前提出的问题,但他们都没有为我工作。



任何帮助都会非常感激。

解决方案

您是否尝试将虚拟框的网络设置设置为桥接适配器而不是NAT $ b然后从你的主机系统尝试打开浏览器并输入guestIP:Hbase_Master_Port(例如192.168.1.100:60010)它应该打开主管理页面。

Hi i am new to hbase and trying to practice it. First of all i would like to describe about system configuration. BACKGROUND:

I am using Windows 7 and installed Oracle Virtual Box. Then installed ubuntu server on Virtual Box after that I installed hbase0.98-hadoop2-bin.tar.gz on ubuntu. I have configured hbase in standalone mode. My hbase-site.xml file is like:

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

Now my hbase shell is working fine it creates table. I can put values and get them.

MAIN PROBLEM:

As stated I am using Windows so I wrote a simple program on eclipse in java to hit hbase (which is basically on virtual box). But I get following exception:

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)

My Code: Code in main function is like:

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

WHAT I WANT?

What am i doing wrong? I there any way to access hbase(resided on virtual box) from windows java program?

PLUS:

I studied previously asked questions but none of them was working for me.

Any help would be very appreciative.

解决方案

Have you tried to set the Network setting of your Virtual box to "bridged Adapter" instead of "NAT" , and then from your Host system , try to open browser and type "guestIP:Hbase_Master_Port"(192.168.1.100:60010 for example ) it should open the master administration page .

这篇关于从Windows Java应用程序访问虚拟框hbase的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆