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中。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。