Java API遠程連接服務器hbase報錯:Connection refused: no further information: localhost/127.0.0.1:16000解決

一 前言

前面兩篇博客Linux 下僞分佈式方式安裝hadoop-2.9.2Linux僞分佈式模式安裝hbase-2.2.4
介紹瞭如何在linux下僞分佈式的方式安裝hadoop和hbase。接下來就是用java api 訪問進行CRUD操作了。java api 用的是hbase-client-2.2.4。代碼就不貼了,網上很多。結果就報錯了,害~
錯誤如下:

org.apache.hbase.thirdparty.io.netty.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調用成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章