2011-11-16 72 views
3

我试图在伪分布式模式下运行HBase。我已经完成了本教程中的所有步骤。HBase绑定到不正确的地址

HBase的-site.xml中看起来是这样的:

<configuration> 
     <property> 
       <name>hbase.rootdir</name> 
       <value>hdfs://localhost:9000/hbase</value> 
     </property> 
     <property> 
       <name>dfs.replication</name> 
       <value>1</value> 
     </property> 
</configuration> 

regionservers看起来像这样(默认):

localhost 

在日志中,动物园管理员开始OK,MiniZK开始OK,然后我得到一个BindException与这是罪魁祸首:

Caused by: java.net.BindException: Problem binding to /192.168.0.1:0 : Cannot assign requested address 

在世界上哪里得到地址192.168.0.1?为什么它试图绑定到端口0?该IP是我的NAT网关。它所在机器的IP地址是192.168.0.200

我查看过所有的配置文件,但没有看到任何我要指定的地址。

任何帮助表示赞赏!提前致谢!

**更新**

它看起来像问题是HBase的试图反向查找我的主机名,因为我用我的路由器which--作为DNS--解决,我的IP地址...我的路由器。

当我在/etc/hosts文件中添加一个“别名”到127.0.0.1时,它解决了。

@ arnon-rotem-gal-oz,我只是安装了HBase tarball中的任何东西。我假设miniZK是Zookeeper的缩小版本?我没有运行一个单独的实例。

您发布的代码有诀窍解决下一个问题出现了。谢谢大家!

+0

在您的/ etc/hosts中是否有一些时髦的东西? –

+0

我认为,太多,但: '127.0.0.1 \t \t的localhost.localdomain本地主机 :: 1 \t \t localhost6.localdomain6 localhost6' (对不起它捣碎together--并不让我的标记) – aimzies

回答

0

检查zookeeper配置文件(zookeeper/conf目录中的zoo.cfg) 此外,为什么您同时拥有zookeeper和miniZK?

此外(与您的问题没有直接关系),您需要告诉hbase哪里可以找到动物园管理员,例如,将以下内容添加到您的hbase-site.xml中

<property> 
    <name>hbase.zookeeper.quorum</name> 
    <value>localhost</value> 
</property>