在hbase中池表的htablepool的替代方案是什么

nue99wik  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(434)

我正在浏览许多hbase连接池的示例和博客。
我试过使用htablepool,编译器会显示它的折旧(使用clouderacdh5.4.0,hbase版本-1.0.0-cdh5.4.0)
而且htable类不是线程安全的,所以我没有直接示例化htable,而是尝试通过从hconnectionmanager获取连接来使用htableinterface,但是这也被贬低了。
上面说使用连接工厂。
我可以得到一个完整的优化和最好的方式来做连接池池有表池替代htablepool

iyr7buue

iyr7buue1#

甚至hconnectionmanager现在也被弃用了。新方法是使用connectionfactory。
我还感到困惑的是,与旧API中的htablepool相比,新客户机中没有连接池。但是新的方法是将executor服务传递给第二个参数中的connectionfactory.createconnection。请参阅此代码以获取更多参考https://hbase.apache.org/xref/org/apache/hadoop/hbase/client/example/multithreadedclientexample.html
如果不传递executor服务,它将创建一个默认池,最终将创建与区域服务器数量相同的线程数。
我做了一个perf测试,看看传递不同大小的executor服务与不显式传递任何executor服务有什么区别,相信我,默认方法(不传递executor服务)的效果和传递线程池超过20的服务一样好(我有10个区域服务器)。所以在我看来,您可以在不显式传递executor服务的情况下使用它。

相关问题