client频繁出现 waiting for 174 actions to finish on table问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

client频繁出现 waiting for 174 actions to finish on table问题

2018-11-06 17:42:31 10562 1

批量get hbase频繁出现 waiting for 174 actions to finish on table类似的日志,看了下代码,客户端批量请求的时候维护一个共享变量
10
public void batch(final List<? extends Row> actions, final Object results) throws InterruptedException, IOException { AsyncRequestFuture ars = multiAp.submitAll(pool, tableName, actions, null, results);

ars.waitUntilDone(); 
if (ars.hasError()) { throw ars.getErrors(); } 

}

在发送请求时会初始化这个变量为批次的大小,即这一批的数据行数。服务端返回数据后请求服务端的线程会根据返回的数据量对这个变量递减。如果返回的数据行数和请求的行数相等递减为0. batch操作结束本次请求数据结束。但是现在我遇到的情况时返回的数据数和请求的数据数不相等,args.waitUntilDone()这里面的代码就会无限循环输出下面的这种日志。
2018-10-11 16:58:13 [INFO] [org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl:1698] - #1, waiting for 85 actions to finish on table:
2018-10-11 16:58:24 [INFO] [org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl:1698] - #1, waiting for 85 actions to finish on table:

疑问点:
1.什么情况下会导致请求的数据行数和返回的数据行数不一致?
我这里看到一共还有85个actions在等待,一直刷了一天多的日志,只能重启程序。同时我看服务端的请求并发并不高,个人认为不是服务端处理不过来的原因。

2,当维护的共享变量(每次批请求的数据量会初始化这个共享变量,请求返回后会递减这个变量)不能递减到0时为什么会是无限循环输出日志的这种逻辑。(而且是info级别的日志)。?
11

取消 提交回答
全部回答(1)
  • 我是管理员
    2019-07-17 23:12:32

    出现这种请求一直积压的问题,对于客户端而言:个人认为,如果客户端没有出现异常,日志一直在刷,一般的问题就有可能是服务端没有处理掉action ,或者有region在split超时等。另外GC也会导致这样的问题;还有就是批次查询的量也应该设置一下,检查一下这方面的参数是否设置合理。以上只是个人意见,以实际情况为主,另外还是主要从日志方面着手查询原因

    0 0
相关问答

0

回答

清空会话数据表 - The table &#39;ecs_sessions&#39; is full

2018-11-22 14:36:40 1865浏览量 回答数 0

1

回答

各位谁知道 \d+ tablename 命令的Partitions:部分用SQL语句怎么查

2019-05-29 13:44:12 1373浏览量 回答数 1

1

回答

mongodb : still waiting for a previous m?报错

2020-06-20 17:31:29 248浏览量 回答数 1

1

回答

使用了流应用中使用了mysql jdbc的source,Execution处于FINISHED有问题

2021-12-05 22:13:52 360浏览量 回答数 1

1

回答

Mysql:The driver has not received any packets from the server.报错

2016-02-19 10:32:58 19799浏览量 回答数 1

1

回答

MySQL启动报错 Starting MySQL.The server quit without updating PID file

2016-11-16 10:27:14 2453浏览量 回答数 1

0

回答

IOS错误---“A valid provisioning profile for this exe

2021-10-25 19:00:32 201浏览量 回答数 0

0

回答

SSH 连接时出现如下错误:pam_limits(sshd:session):could not sent limit for &#39;nofile&#39;

2017-10-23 14:20:53 2460浏览量 回答数 0

0

回答

在 if/else/for/while/do 语句中必须使用大括号

2022-07-05 11:27:42 69浏览量 回答数 0

2

回答

How to select random rows from a table by SQL?

2021-10-16 14:45:07 313浏览量 回答数 2
+关注
hbase小能手
HBase是一个分布式的、面向列的开源数据库,一个结构化数据的分布式存储系统。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。阿里云HBase技术团队共同探讨HBase及其生态的问题。
112
文章
338
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载