我已经创建了一个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都是新手
1条答案
按热度按时间b4qexyjb1#
您可以将共享连接定义为静态连接,并在静态块中示例化它。
您可以在其他地方创建一个连接(比如在连接工厂中),并将其作为参数传递给每个构造函数(或者从构造函数内部的工厂获取)。
另一个(不是很好的)解决方案是定义一个静态连接,并在构造函数中检查它是否为null,创建对象,如果不只是使用它