无法使HBase独立模式工作

时间:2012-12-27 22:00:46

标签: hbase

我在使用virtualbox的Win 7 pc上使用openSuse 12.2作为访客。 我将Hbase 0.94.3版本下载并解压缩到/ usr / local / 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>

两个目录都存在。这是我执行命令列表时生成的错误的一部分:

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

2 个答案:

答案 0 :(得分:3)

对我而言,它看起来像是网络相关的问题,而不是Hbase。如果查看日志,则表明正在调用其他主机而不是localhost。确保您的VM上有正确的DNS解析。如果你想顺利运行Hbase,这一点非常重要。您在/ etc / hosts文件中将“127.0.1.1”行更改为“127.0.0.1”吗?

答案 1 :(得分:0)

HBase不支持环回ip。所以尽量避免在/ 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. Ubuntu的示例/ etc / hosts文件

以下/ etc / hosts文件在Ubuntu上正常运行HBase 0.94.x及更早版本。如果遇到麻烦,请将此作为模板使用。

127.0.0.1 localhost

127.0.0.1 ubuntu.ubuntu-domain ubuntu