在独立模式下启动HBase时出错

时间:2013-07-17 13:02:44

标签: hbase

我已经在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。

任何人都知道造成这种情况的原因是什么?

3 个答案:

答案 0 :(得分:2)

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

此外,我认为hbase.cluster.distributed应为false

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

我只是断断续续地使用hadoop,所以我只是从我的core-site.xml中注释了所有内容并且hbase再次启动。

相关问题