java連接HBase,連接不上報錯can not resolve問題及解決

java連接HBase,連接不上報錯can not resolve

[INFO] [2020-06-23 21:30:16][org.apache.hadoop.hbase.client.RpcRetryingCaller – 165]Call exception, tries=10, retries=35, started=47508 ms ago, cancelled=false, msg=java.net.UnknownHostException: can not resolve hserver1,16000,1592917603843, details=, see https://s.apache.org/timeout
[INFO] [2020-06-23 21:30:28][org.apache.hadoop.hbase.client.RpcRetryingCaller – 165]Call exception, tries=11, retries=35, started=59772 ms ago, cancelled=false, msg=java.net.UnknownHostException: can not resolve hserver1,16000,1592917603843, details=, see https://s.apache.org/timeout
[INFO] [2020-06-23 21:30:50][org.apache.hadoop.hbase.client.RpcRetryingCaller – 165]Call exception, tries=12, retries=35, started=82155 ms ago, cancelled=false, msg=java.net.UnknownHostException: can not resolve hserver1,16000,1592917603843, details=, see https://s.apache.org/timeout
[INFO] [2020-06-23 21:31:13][org.apache.hadoop.hbase.client.RpcRetryingCaller – 165]Call exception, tries=13, retries=35, started=104512 ms ago, cancelled=false, msg=java.net.UnknownHostException: can not resolve hserver1,16000,1592917603843, details=, see https://s.apache.org/timeout

hserver1是我HBase的主機名,但是我的代碼中並為出現該名詞。

出現這種錯誤很有可能是hosts裡面沒有添加HBase的地址。

將HBase的ip地址寫在hosts中便可正常。

添加之後java就可以正常連接HBase瞭

java連接Hbase異常

java連接Hbase出現如下異常:

org.apache.hadoop.hbase.MasterNotRunningException:java.net.unknownHostException:can not resolve hdp14,16000

問題原因

hbase的配置文件中hbase-site.xml裡面關於 hbase.zookeeper.quorum 這個配置,使用的不是ip,而是hosts映射地址,導致無法解析諸如hdp14之類的主機名

解決辦法

把hbase所在主機的hosts文件中的配置,拷貝到java代碼運行環境中。

如果java代碼是在本地啟動的,就把hosts中的映射地址放在windows中的C:\WINDOWS\system32\drivers\etc\hosts裡面,如果java代碼是在linux服務上啟動的,就把hosts的映射地址放在 /etc/hosts中。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: