2012-12-27 68 views
3

我使用openSUSE的12.2作爲嘉賓在Win 7的PC在VirtualBox中。 我下載並提取了Hbase 0.94.3版本到/ usr/local/hbase目錄無法獲得HBase的獨立模式下工作

我執行了描述的步驟here

我可以初始化HBase的,但我得到一個錯誤,當我嘗試在HBase的shell執行任何命令。我甚至無法列出表格。

這裏是我的HBase-site.xml文件:

<?xml version="1.0"?> 
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?> 
<configuration> 
    <property> 
    <name>hbase.rootdir</name> 
    <value>file:///usr/local/hbase</value> 
    </property> 
    <property> 
    <name>hbase.zookeeper.property.dataDir</name> 
    <value>/usr/local/zookeeper</value> 
    </property> 
</configuration> 

這兩個目錄exist.This是,當我執行的命令列表生成的錯誤的一部分:

12/12/27 19:56:41 ERROR zookeeper.ZooKeeperWatcher: hconnection Received unexpected KeeperException, re-throwing exception 
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase 

這是生成的日誌文件的最後部分:

2012-12-27 19:53:41,820 ERROR org.apache.hadoop.hbase.master.HMasterCommandLine: Failed to start master 
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMasterlinux-eh01.site: Name or service not known 
    at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:134) 
    at org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:197) 
    at org.apache.hadoop.hbase.LocalHBaseCluster.<init>(LocalHBaseCluster.java:147) 
    at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:140) 
    at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:103) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) 
    at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76) 
    at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1820) 
Caused by: java.net.UnknownHostException: linux-eh01.site: linux-eh01.site: Name or service not known 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1438) 
    at org.apache.hadoop.net.DNS.getDefaultHost(DNS.java:185) 
    at org.apache.hadoop.hbase.master.HMaster.<init>(HMaster.java:246) 
    at org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster.<init>(HMasterCommandLine.java:215) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 
    at org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:131) 
    ... 7 more 
Caused by: java.net.UnknownHostException: linux-eh01.site: Name or service not known 
    at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) 
    at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) 
    at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) 
    at java.net.InetAddress.getLocalHost(InetAddress.java:1434) 
    ... 15 more 

回答

3

它看起來像一個網絡相關的問題,而不是我的Hbase。如果您查看日誌,它會顯示正在對其他主機進行調用,而不是本地主機。確保你的虛擬機有適當的DNS解析。如果你想順利運行Hbase,這是非常重要的。你在/ etc/hosts文件中將行「127.0.1.1」更改爲「127.0.0.1」嗎?

+1

我也沒必要。當我檢查/ etc/hosts時,該行已經是正確的。謝謝回覆。 – user1889482

+0

然後嘗試使用IP添加主機名。如果已經完成則忽略。 – Tariq

+0

解決了這個問題。只需將127.0.0.1 linux-eh01.site行添加到/ etc/hosts並工作即可。再次感謝Tariq。 – user1889482

0

HBase的不迴環知識產權工作。所以請儘量避免在/ etc/hosts文件中使用loopback IP。

環回IP - HBase 0.94.x及更早版本 以下建議僅適用於hbase-0.94.x及更早版本。 這固定在hbase-0.96.0及更高版本中。

此前HBase的0.94.x,HBase的預期環回IP地址127.0.0.1是。 Ubuntu和其他一些發行版默認爲127.0.1.1,這會給你帶來問題。請參閱HBase爲何關心/ etc/hosts?詳細

實施例1實施例/ etc/hosts文件的Ubuntu

以下/ etc/hosts文件可以正確處理HBase的0.94.x和更早版本,在Ubuntu。如果遇到麻煩,請將其用作模板。

127.0.0.1本地主機

127.0.0.1 ubuntu.ubuntu域的Ubuntu

+0

這固定在hbase-0.96.0及更高版本中 – Naga