admin管理员组

文章数量:1608599

一 前言

前面两篇博客Linux 下伪分布式方式安装hadoop-2.9.2和Linux伪分布式模式安装hbase-2.2.4
介绍了如何在linux下伪分布式的方式安装hadoop和hbase。接下来就是用java api 访问进行CRUD操作了。java api 用的是hbase-client-2.2.4。代码就不贴了,网上很多。结果就报错了,害~
错误如下:

org.apache.hbase.thirdparty.ioty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: no further information: localhost/127.0.0.1:16000

二 解决过程

于是乎网上搜索解决办法,找了一阵发现需要做以下修改:
假设你安装hbase的服务器的ip是192.168.66.23,hostname是test-hbase
(1)在本地winsows的hosts文件 C:\Windows\System32\drivers\etc 中添加

192.168.66.23   test-hbase

(2)linux /etc/hosts中添加

192.168.66.23   test-hbase

(3)linux中输入hostname命令查看linux 的hostname,如果不是test-hbase,则输入命令

hostname test-hbase

临时改变linux服务器的hostname
(4)重启hbase,进行连接,还是报上面的错误。
真是一顿操作猛如虎…
网上继续寻找解决方法。

三 最终篇

输入命令

netstat -anptl | grep 16000

结果如下

16000端口绑定了本地ip 127.0.0.1
问题的根源找到了!
解决办法:
hbase的配置文件hbase-site.xml中添加配置

<property>
<name>hbase.master.ipc.address</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hbase.regionserver.ipc.address</name>
<value>0.0.0.0</value>
</property>

指定ip,然后重启hbse,

java api调用成功。

本文标签: 报错服务器ConnectionHbaseJava