hbase 1.1.2公共连接

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

我已经创建了一个hbase扫描方法,但是我正在创建并关闭方法本身内部的连接。有没有人能建议如何创建一个公共连接,以便我可以使用该连接进行put,等等,我不确定何时关闭该连接。
公共类hbaseconnection{

private static  Connection connection;

public void scanHBase(String tableName, byte[] startRow, byte[] stopRow) throws IOException {
    connection = ConnectionFactory.createConnection(hBaseConn);
    Table tableRef = connection.getTable(tableName);
    Scan scan = new Scan(startRow, stopRow);
    ResultScanner scanner = tableRef.getScanner(scan);
    System.out.println("Starting scan");
    for (Result res : scanner) {
       //do something
    }
    scanner.close();
    tableRef.close();
    connection.close();
}

}
我在scanhbase()中创建的连接对象需要在外部创建并在外部关闭。有这种可能性吗。我对java和hbase都是新手

b4qexyjb

b4qexyjb1#

您可以将共享连接定义为静态连接,并在静态块中示例化它。
您可以在其他地方创建一个连接(比如在连接工厂中),并将其作为参数传递给每个构造函数(或者从构造函数内部的工厂获取)。
另一个(不是很好的)解决方案是定义一个静态连接,并在构造函数中检查它是否为null,创建对象,如果不只是使用它

相关问题