hbase到了1.x之后放弃了这种创建工厂的方式:
@deprecated Please use ConnectionFactory instead
Connection connection =HConnectionManager.createConnection(conf);
改用ConnectionFactory 类来创建hbase客户端连接
ConnectionFactory 这个类的主要方法如下:
其中最主要的是这个createConnection(final Configuration conf, final boolean managed, final ExecutorService pool, final User user)带有四个参数的方法,其他方法最终都是调用这个方法。由于这个方法没有public,所以我们还是只能调用其重载的方法。
/* @param conf configuration 配置
*为哪个用户创建的连接,这里的用户会默认实例化hadoop的SecureHadoopUser类,个人认为:hbase通过hadoop的安全认证来管理hbase集群。
* @param user the user the connection is for
* 用于批量操作的线程池,默认为null。这里使用线程池来管理连接,一个线程对应一个连接,其实一个连接,但是我们也可以不传线程池,这种情况下,只会实例化一个不带线程池的连接
* @param pool the thread pool to use for batch operations
* 返回连接对象
* @return Connection object for <code>conf</code>
* 这里的参数managed,该参数用于connection的生命周期管理,在上述的传递过程中该参数始终为false,关于该参数的作用,在connection close的时候体现
* indicates whether this connection's life cycle is managed (by us)
* 表示这个连接的管理权是用户,还是有connection对象自己管理
* 如果管理权是属于用户的那么在调用close方法时有区别。
*/
static Connection createConnection(final Configuration c