2014-09-23 74 views
-1

嗨,我是新來的hbase,並試圖實踐它。首先我想描述系統配置。 背景:從Windows Java應用程序訪問虛擬盒子hbase

我正在使用Windows 7並安裝了Oracle Virtual Box。然後,在Ubuntu上安裝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聲明,所以我在Java在Eclipse上寫了一個簡單的程序,達到HBase的(這基本上是虛擬盒)。但我得到以下異常:

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) 

我的代碼: 代碼中的主要功能是這樣的:

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

我想要什麼?

我在做什麼錯? 我有沒有辦法從Windows Java程序訪問hbase(駐留在虛擬框中)?

PLUS:

我研究以前提出的問題,但他們都不是爲我工作。

任何幫助將非常感激。

+0

您的虛擬盒ubuntu實例配置爲接受外部連接嗎?運行ifconfig並檢查「eth0」接口是否正常工作。如果沒有,試試這個:https://help.ubuntu.com/10.04/serverguide/network-configuration.html – Aritra 2014-09-23 19:32:16

+0

是的,當我做ifconfig時,它顯示有關eth0和lo的信息。 – Mr37037 2014-09-23 19:37:34

+0

很酷..現在檢查你的防火牆設置。你可以通過Windows遠程登錄虛擬機的端口嗎?你可能需要類似cygwin的東西。 – Aritra 2014-09-23 19:39:52

回答

0

您是否嘗試將虛擬箱的網絡設置設置爲「橋接適配器」而不是「NAT」, ,然後從您的主機系統嘗試打開瀏覽器並鍵入「guestIP:Hbase_Master_Port」(192.168.1.100 :例如60010)它應該打開主管理頁面。