Hbase 1.1.2通用连接

时间:2015-09-29 15:37:01

标签: java connection hbase

我已经创建了一个hbase扫描方法,但是我在方法本身内创建并关闭了Connection。任何人都可以建议如何创建一个公共连接,以便我可以使用连接为put等  我不确定何时关闭连接。

public class 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()中创建的Connection对象我需要在外部创建它以及在外面关闭它。这有可能吗?我是Java的新手,也是Hbase的新手

1 个答案:

答案 0 :(得分:0)

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