【完美解决】- 使用JavaApI 连接查询HBASE 出现 java.net.SocketTimeoutException: callTimeout=60000

1.报错

org.apache.hadoop.hbase.client.RetriesExhaustedException: 
Failed after attempts=36, exceptions:Tue May 28 08:16:11 CST 2019, null,
java.net.SocketTimeoutException: callTimeout=60000, callDuration=63316: cm5 row 'stu01,,'
on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=cm5,60020,1558923622597, seqNum=0

【完美解决】- 使用JavaApI 连接查询HBASE 出现 java.net.SocketTimeoutException: callTimeout=60000_第1张图片
在这里插入图片描述

在这里插入图片描述
这里注意上图 : .UnknownHostException: cm1 因为HBase也是分布式的 , 所以当你连接HBase , 并且查询的时候 , 它会查询其他主机的元数据 .,这个访问的时候会使用主机名访问 , 它会查询我们自己windows电脑上 cm1 对应的主机名 , 但是这个我又没有设置 , 所以报了
.UnknownHostException: cm1 错误 , 这里只需要在 hosts文件 中加入 ip 主机名 映射即可
如图 :
【完美解决】- 使用JavaApI 连接查询HBASE 出现 java.net.SocketTimeoutException: callTimeout=60000_第2张图片

注意 : 如果还不行的话 可以检查下

  • 是不是开了360之类的拦截了 , 或者HBase的主机防火墙处于开启状态
  • 链接的ip 是否写正确了

更改之后
【完美解决】- 使用JavaApI 连接查询HBASE 出现 java.net.SocketTimeoutException: callTimeout=60000_第3张图片

成功!

你可能感兴趣的:(【完美解决】- 使用JavaApI 连接查询HBASE 出现 java.net.SocketTimeoutException: callTimeout=60000)