【发布时间】:2011-11-16 17:59:02
【问题描述】:
我正在尝试以伪分布式模式运行 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
在日志中,Zookeeper 启动正常,MiniZK 启动正常,然后我得到一个 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 试图通过我的主机名反向查找我的 IP 地址——因为我将路由器用作 DNS——解析为...我的路由器。
当我在 /etc/hosts 文件中将“别名”添加到 127.0.0.1 时,它解析得很好。
@arnon-rotem-gal-oz,我刚刚安装了 HBase 压缩包中的任何内容。我假设 miniZK 是 Zookeeper 的缩小版?我没有运行它的单独实例。
您发布的代码解决了下一个出现的问题。
【问题讨论】:
-
你的 /etc/hosts 里有什么奇怪的东西吗?
-
我也这么认为,但是:
127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6(对不起,它被混在一起了——不允许我标记)