HtablePool的替代方法是在Hbase中汇集表

时间:2016-03-08 07:18:40

标签: hbase cloudera

我正在浏览许多关于hbase连接池的示例和博客。

我尝试使用Htablepool,编译器显示其折旧(使用cloudera cdh 5.4.0,Hbase版本 - 1.0.0-cdh5.4.0)

Htable类也不是Thread安全的,所以不是直接实例化Htable而是试图通过从HConnectionManager获取连接来使用HtableInterface,但这也是折旧的。

它说使用ConnectionFactory。

我可以获得一个完整的优化和最佳方式来进行连接池,并且有一个桌子池替代HTablePool

1 个答案:

答案 0 :(得分:-1)

即使Hconnectionmanager现已弃用。新方法是使用ConnectionFactory。

与旧的API中的HTablePool相比,我也很困惑在新客户端中找不到连接池。但新方法是将执行程序服务传递给第二个参数中的ConnectionFactory.createConnection。请查看此代码以获取更多参考 https://hbase.apache.org/xref/org/apache/hadoop/hbase/client/example/MultiThreadedClientExample.html

如果您没有传递执行程序服务,它会创建一个默认池,最终将与区域服务器的数量一样多。

我做了一个perf测试,看看如何传递不同大小的执行器服务,而不是显式传递任何执行器服务,并且相信我的默认方法(不传递执行器服务)和我在线程池中传递超过20的服务一样好。 case(我有10个区域服务器)。 因此,在我看来,您可以在不明确传递执行服务的情况下使用它。