我在使用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
答案 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