hbase单机模式下,使用java API远程连接hbase的问题。

左潇龙
博客专家认证
2014-06-01 05:50:05
最近需要使用hbase作为数据库,所以想自己研究下hbase。不过最近遇到一个问题,很多天也没找到答案。
首先描述一下我的机子。普通的PC机,系统为win7,在win7里装了个虚拟机,运行ubuntu10,虚拟机里装了hadoop和hbase,两者全部运行成功,使用hbase shell和在虚拟机里使用JAVA API操作hbase都没问题。
但是问题就是我想直接使用PC机中的JAVA API(也就是win7)直接操作虚拟机里的hbase,就怎么都不行了。
贴上我的配置。
hbase-site.xml大致如下
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/tmp</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.235.134:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.235.134</value>
</property>
/etc/hosts大致如下
192.168.235.134 localhost ubuntu

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
PC机(即win7上)的JAVA API中的hbase-site.xml大致如下
<property>
<name>hbase.cluster.distributed</name>
<value>false</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.235.134:9000/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>192.168.235.134</value>
</property>
求hbase大神告知一下这是什么回事。PC机里JAVA代码大致如下。
HBaseAdmin.checkHBaseAvailable(HBaseConfiguration.create());
错误如下:
org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.ConnectException: Connection refused: no further information
其实本人跟了源码,发现zookeeper在获取master地址时总返回localhost,问题应该就在这。找不到master,看源码里,是去请求了/hbase/hbaseid这个玩意,这到底是什么东西?
最后再说明一下,虚拟机里的hadoop和hbase都没问题,上面也说了,直接在虚拟机里做什么都可以,只是在win7上远程java连接就不行了。而且我在win7上专门尝试telnet了一堆端口(比如2181、60000,包括rpcserver的随即端口等等),都可以上去。
...全文
6160 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bo_hai 2016-05-05
  • 打赏
  • 举报
回复
http://yaoyinjie.blog.51cto.com/3189782/650902 这个链接讲的很详细。 我的解决办法:配置文件中完布使用机器的物理IP地址,不要需要localhost和127.0.0.1。然后在hosts文件中写明机器物理IP与机器名的对应关系。ecipse 的机器中的hosts文件也写明物理ip与机器的对应关系。
柯南小Z 2016-03-21
  • 打赏
  • 举报
回复
楼主是怎么弄的啊,能加个好友吗?
醉无吟 2015-12-24
  • 打赏
  • 举报
回复
说说怎么解决的?
一本郑经 2015-07-02
  • 打赏
  • 举报
回复
楼主,你这个是怎么解决的,我也碰到这个问题很头疼
Shellong 2014-08-12
  • 打赏
  • 举报
回复
你是如何解决的? 使用JavaAPI的客户端上必须要安装HBase吗?
左潇龙 2014-06-02
  • 打赏
  • 举报
回复
多谢,解决了。
wangdan1600 2014-06-01
  • 打赏
  • 举报
回复
我遇到过类似的问题,也是hbase shell操作正常,但java api会超时。 你按照这里的方法,配置下DNS试试: http://yaoyinjie.blog.51cto.com/3189782/650902 PS:我的问题并未搞定,因为在zookeeper里,get /hbase/master,返回的是乱码。。。。还不如你的localhost呢

20,848

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧