我正在尝试以伪分布式模式运行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启动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试图通过我的主机名反向查找我的IP地址 - 因为我正在使用我的路由器作为DNS--解决了......我的路由器。
当我在 / etc / hosts 文件中将“别名”添加到127.0.0.1时,它解析得很好。
您发布的代码解决了出现的下一个问题。谢谢大家!
答案 0 :(得分:0)
检查zookeeper配置文件(zookeeper / conf目录中的zoo.cfg) 另外你为什么同时拥有zookeeper和miniZK?
另外(与您的问题没有直接关系)您需要告诉hbase在哪里找到zookeeper,例如将以下内容添加到hbase-site.xml
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>