HBase在大数据量并发写入时,写一段时间后HBase监控界面出现告警,写入程序日志里频繁出现异常java.util.concurrent.RejectedExecutionException HBas
HBase在大数据量并发写入时,写一段时间后HBase监控界面出现告警,写入程序日志里频繁出现异常java.util.concurrent.RejectedExecutionException:
从异常堆栈信息可以看出是flush请求时被拒绝引起的,核对一下flush的代码。
我们单位办公电脑在内网里,不便粘贴代码和异常信息,这里手动写几行代码大体说明情况。
1 Configuration conf = HBaseConfiguration.create();
2 Connection connection = ConnectionFactory.createConnection(conf);
3 Table table = null;
4 try (Admin admin = connection.getAdmin()) {
5 TableName tableName = TableName.valueOf("test:table");
6 table = connection.getTable(tableName);
7 table.put(puts);//List puts
8 admin.flush(tableName);
9 } finally {
10 if (table != null) {
11 table.close();
12 }
13 }
代码是每接受到一批List
这里的flush太频繁是不合理的,把flush机制修改为了写入一定数据量或超过一定时间没有后才触发,问题就解决了。
这里顺便学习一下HBase触发flush的条件。引用前辈的链接吧,已经总结的很不错了。https://www.iteblog.com/arcHives/2497.html
--结束END--
本文标题: HBase写入异常RejectedExecutionException
本文链接: https://lsjlt.com/news/6998.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-10-23
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
2024-10-22
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0