项目场景:
使用docker搭建HBASE时,另外一台主机的idea运行程序时访问docker的HBASE时出错
问题描述
idea运行程序访问docker时出现以下错误:
2022-05-06 13:25:53,361 INFO [org.apache.zookeeper.ClientCnxn] - Opening socket connection to server 192.168.252.144/192.168.252.144:2181. Will not attempt to authenticate using SASL (unknown error)
2022-05-06 13:25:53,372 INFO [org.apache.zookeeper.ClientCnxn] - Socket connection established to 192.168.252.144/192.168.252.144:2181, initiating session
2022-05-06 13:25:53,380 INFO [org.apache.zookeeper.ClientCnxn] - Session establishment complete on server 192.168.252.144/192.168.252.144:2181, sessionid = 0x18097a4abcc000c, negotiated timeout = 90000
2022-05-06 13:26:18,979 WARN [org.apache.hadoop.hbase.client.ConnectionUtils] - Can not resolve 2e93cd075599, please check your network
java.net.UnknownHostException: 2e93cd075599: 域名解析暂时失败
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)
at java.net.InetAddress.getAllByName0(InetAddress.java:1277)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getByName(InetAddress.java:1077)
at org.apache.hadoop.hbase.client.ConnectionUtils.getStubKey(ConnectionUtils.java:239)
at org.apache.hadoop.hbase.client.ConnectionImplementation$MasterServiceStubMaker.makeStubNoRetries(ConnectionImplementation.java:1147)
at org.apache.hadoop.hbase.client.ConnectionImplementation$MasterServiceStubMaker.makeStub(ConnectionImplementation.java:1169)
at org.apache.hadoop.hbase.client.ConnectionImplementation.getKeepAliveMasterService(ConnectionImplementation.java:1234)
at org.apache.hadoop.hbase.client.ConnectionImplementation.getMaster(ConnectionImplementation.java:1223)
at org.apache.hadoop.hbase.client.MasterCallable.prepare(MasterCallable.java:57)
at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:105)
at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3089)
at org.apache.hadoop.hbase.client.HBaseAdmin.executeCallable(HBaseAdmin.java:3081)
at org.apache.hadoop.hbase.client.HBaseAdmin.createNamespaceAsync(HBaseAdmin.java:2179)
at org.apache.hadoop.hbase.client.HBaseAdmin.createNamespace(HBaseAdmin.java:2172)
at HBaseMain.createNameSpace(HBaseMain.java:26)
at HBaseMain.main(HBaseMain.java:30)
2022-05-06 13:26:19,090 WARN [org.apache.hadoop.hbase.client.ConnectionUtils] - Can not resolve 2e93cd075599, please check your network
java.net.UnknownHostException: 2e93cd075599
原因分析:
这是由于主机不知道docker的镜像ID在哪里,只需要添加docker的ID所在虚拟机的IP即可
解决方案:
在/etc/hosts添加以下规则(自己docker所在的虚拟机的IP+docker镜像ID):
193.168.252.144 2e93cd075599
就可以解决问题了。