3

我已经在 Ubuntu 映像中下载并安装了 HBase 0.94.9。我遵循了 Apache 的入门步骤。它说要修改 hbase-site.xml,尽管我发现我的没有定义属性。所以我加了两个。这是完整的文件:

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

我还确保 /etc/hosts 没有 127.0.1.1 问题:

127.0.0.1   localhost
127.0.0.1   ubuntu

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

如果我理解正确,这个设置应该完全独立运行 HBase,使用本地文件系统;不涉及 Hadoop。(Hadoop 安装在这台机器上,但当前没有运行。)但是每当我启动 HBase 时,我都会在日志中看到:

2013-07-17 07:24:51,121 ERROR org.apache.hadoop.hbase.master.HMasterCommandLine: Failed to start master
java.net.ConnectException: Call to localhost/127.0.0.1:9000 failed on connection     exception: java.net.ConnectException: Connection refused
    at org.apache.hadoop.ipc.Client.wrapException(Client.java:1099)
    at org.apache.hadoop.ipc.Client.call(Client.java:1075)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
    at sun.proxy.$Proxy11.getProtocolVersion(Unknown Source)

它正在寻找端口 9000,就好像它认为它应该连接到 HDFS。但是 /home/dan/hbase 中有文件夹和文件。我在 HBase 文件夹中搜索了“9000”的所有内容,我看到它列出的唯一位置是在 docs 或 src 目录中,显示了设置分布式或伪分布式环境的示例。所以我很困惑为什么这个实例正在寻找端口 9000。

有人知道是什么原因造成的吗?

4

3 回答 3

2

hbase-site.xml中,确保它hbase.rootdir不是类似的东西hdfs://...,而是指向本地文件系统目录,例如/home/myuserid/hbase

另外,我认为hbase.cluster.distributed应该是false

于 2013-07-17T13:33:36.130 回答
2

事实证明,我必须让 Hadoop 运行。我不知道为什么,因为我将 HBase 设置为仅使用本地文件系统。但是我用了几个小时来解决这个问题,直到我最终决定启动 Hadoop,然后是 HBase,而 HBase 立即开始工作。尽管 HDFS 在端口 8020 上,而不是 9000 上,但我完全糊涂了,但至少 HBase 正在运行。

于 2013-07-18T02:05:39.223 回答
0

我最近遇到了这个问题。看起来 hbase 脚本会在您的路径中查找 hadoop 可执行文件,并使用它来神奇地定位配置文件。在启动 hbase 之前,您可能会从您的路径中删除 hadoop 以使事情正常进行。

我只是间歇性地使用 hadoop,所以我只是将我的 core-site.xml 中的所有内容都注释掉了,然后 hbase 又重新开始了。

于 2016-04-29T23:18:35.383 回答