Can';无法使HBase独立模式正常工作

Can';无法使HBase独立模式正常工作,hbase,Hbase,我正在使用openSuse 12.2作为Win 7 pc和virtualbox的来宾。 我下载了Hbase 0.94.3版本并将其解压缩到/usr/local/Hbase目录中 我执行了描述的步骤 我可以初始化hbase,但当我尝试在hbase shell中执行任何命令时,会出现错误。我连桌子都列不出来 这是我的hbase-site.xml文件: <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="confi

我正在使用openSuse 12.2作为Win 7 pc和virtualbox的来宾。 我下载了Hbase 0.94.3版本并将其解压缩到/usr/local/Hbase目录中

我执行了描述的步骤

我可以初始化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>
这是生成的日志文件的最后一部分:

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
2012-12-27 19:53:41820错误org.apache.hadoop.hbase.master.HMasterCommandLine:无法启动master
java.lang.RuntimeException:未能构造Master:class org.apache.hadoop.hbase.Master.HMasterCommandLine$LocalHMasterlinux-eh01.site:名称或服务未知
位于org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:134)
位于org.apache.hadoop.hbase.LocalHBaseCluster.addMaster(LocalHBaseCluster.java:197)
位于org.apache.hadoop.hbase.LocalHBaseCluster。(LocalHBaseCluster.java:147)
位于org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:140)
位于org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:103)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
位于org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:76)
位于org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:1820)
原因:java.net.UnknownHostException:linux-eh01.site:linux-eh01.site:名称或服务未知
位于java.net.InetAddress.getLocalHost(InetAddress.java:1438)
位于org.apache.hadoop.net.DNS.getDefaultHost(DNS.java:185)
位于org.apache.hadoop.hbase.master.HMaster。(HMaster.java:246)
位于org.apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster。(HMasterCommandLine.java:215)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:525)
位于org.apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.java:131)
... 还有7个
原因:java.net.UnknownHostException:linux-eh01.site:名称或服务未知
在java.net.Inet6AddressImpl.lookupAllHostAddr(本机方法)
位于java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
位于java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
位于java.net.InetAddress.getLocalHost(InetAddress.java:1434)
... 还有15个

对我来说,这似乎是一个与网络相关的问题,而不是Hbase。如果您查看日志,就会发现正在调用其他主机,而不是本地主机。确保您的虚拟机上有正确的DNS解析。如果希望顺利运行Hbase,这一点非常重要。您是否已将/etc/hosts文件中的行“127.0.1.1”更改为“127.0.0.1”?

HBase不适用于环回ip。因此,尽量避免在/etc/hosts文件中使用环回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本地主机


127.0.0.1 ubuntu.ubuntu-domain ubuntu

我不需要。当我检查/etc/hosts时,线路已经正确了。感谢您的回复。然后尝试使用IP添加主机名。如果已经做了,请忽略。这解决了问题。只需将行127.0.0.1linux-eh01.site添加到/etc/hosts,就可以了。再次感谢Tariq。这在hbase-0.96.0及更高版本中已修复
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