3

我在带有 virtualbox 的 Win 7 电脑上使用 openSuse 12.2 作为访客。我下载并解压了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>

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

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
4

2 回答 2

3

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

于 2012-12-27T22:49:47.547 回答
0

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-域 ubuntu

于 2015-09-01T16:44:05.000 回答