java写main方法连接hbase callTimeout=60000 超时问题???

applelemon 2016-04-22 02:17:44
代码大体如下:
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum","集群hostname" );
conf.set("hbase.zookeeper.property.clientPort", "2181");
conf.set("zookeeper.znode.parent", "/hbase-unsecure");
Connection connection = ConnectionFactory.createConnection(conf);
Admin admin = connection.getAdmin();
List<TableName> tableNames = new ArrayList();
HTableDescriptor[] tables = admin.getTableDescriptorsByTableName(tableNames);

就是说 能连上hbase,并且能查出tables,这几步没问题,但是
我执行
admin.isTableEnabled(htableDescriptor.getTableName()) //获取table是否可用时
超时了,
报错如下:
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed after attempts=36, exceptions:
Fri Apr 22 14:10:54 CST 2016, null, java.net.SocketTimeoutException: callTimeout=60000, callDuration=75362: row 'aaa,,00000000000000' on table 'hbase:meta' at region=hbase:meta,,1.1588230740, hostname=testserver,16020,1431006913051, seqNum=0

请教各位大神,还需要什么额外配置吗,还是我本地环境的某些参数不对?
万分感谢!
...全文
7571 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjz83527 2017-06-14
  • 打赏
  • 举报
回复
3楼正解,具体说就是运行JAVA程序的机器上也要在hosts里配制IP映射。将hbase的集群服务器的ip与机器名加到运行程序的机器的hosts里。
只取一瓢2016 2016-12-19
  • 打赏
  • 举报
回复
把你配置的Hbase的那几个ip设置到你本地的hosts里面,然后注释掉host 里面的127.0.1.1 XXX对应的设置就可以了
applelemon 2016-08-22
  • 打赏
  • 举报
回复
没解决,估计是集群有问题吧。
吻上幸福的脸 2016-06-25
  • 打赏
  • 举报
回复
哥们,你的这个错,解决了吗?

932

社区成员

发帖
与我相关
我的任务
社区描述
云计算 云存储相关讨论
社区管理员
  • 云存储
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧