2017-03-21 92 views
0

我们在伪分布模式和java api中使用hbase 1.2.4来读取信息。我们的客户端使20k rps到hbase,但它只加载CPU的30%,计算大约需要5个小时。我试图拆分数据,并在同一台机器上运行4个客户端,并使用单独的jvm,并且计算时间约为1小时,运行时间为80k rps。这不是满足我的解决方案。分析显示了很多连接线程的阻塞。 我也尝试过使用hbase客户端的ipc池选项,但它没有提高性能太多。 如果有人有类似的东西,请给我一些建议。HBase多线程客户端性能

回答

0

将连接池的大小设置得大得多,然后读取线程的次数就完成了。

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); 
...