hbase多线程客户端性能

8iwquhpp  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(274)

我们在伪分布模式下使用hbase 1.2.4和javaapi来读取信息。我们的客户机对hbase的访问量为20k个rps,但它只占用30%的cpu,计算大约需要5个小时。我尝试分割数据,在不同的jvm中在同一台机器上运行4个客户机,有80k个rps,计算时间大约为一小时。这不是让我满意的解决办法。分析显示了连接线程的许多阻塞。我也尝试过使用hbase客户机的ipc池选项,但并没有太大的提高性能。如果有人有类似的问题,请给我一些建议。

ev7lccsx

ev7lccsx1#

将连接池的大小设置为比读取线程的数量大得多,就可以达到这个目的。

Configuration conf;
...
String poolSize = "128";
conf.set(HConstants.HBASE_CLIENT_IPC_POOL_SIZE, poolSize);
conf.set(HConstants.HBASE_CLIENT_IPC_POOL_TYPE, "RoundRobin");
...
Connection conn = ConnectionFactory.createConnection(conf);
...

相关问题