如何用 Phoenix JDBC 连接 HBase

一.引入 Mavan 依赖


<dependency>
    <groupId>org.apache.phoenixgroupId>
    <artifactId>phoenix-coreartifactId>
    <version>4.14.0-HBase-1.3version>
dependency>

二.建立 JDBC 连接并查询

// 这里配置 zookeeper 的地址,可以是域名或者 ip,可配置单个或者多个节点(用","分隔)
// 语法jdbc:phoenix:[comma-separated ZooKeeper Quorum [:port [:hbase root znode [:kerberos_principal [:path to kerberos keytab] ] ] ]
String url = "jdbc:phoenix:172.20.43.1,172.20.43.2:2181";
Connection conn = DriverManager.getConnection(url);
Statement statement = conn.createStatement();

// 这里执行SQL语句
ResultSet rs = statement.executeQuery("select * from \"myz4\" limit 5");
while (rs.next()) {
    // 例子
    String row = rs.getString("ROW");
    String name = rs.getString("name");
    System.out.println("ROW=" + row + ",name=" + name);
}
// 关闭连接
rs.close();
statement.close();
conn.close();

三.官网给出的两种连接方式

1.Thick Driver

也就是上面所使用的方法,配置规则如下:

jdbc:phoenix:[comma-separated ZooKeeper Quorum [:port [:hbase root znode [:kerberos_principal [:path to kerberos keytab] ] ] ]

中括号里的内容是可选的,每个后面的属性都依赖于前面中括号里的属性。

简单的例子:

jdbc:phoenix:localhost

复杂的例子:

jdbc:phoenix:zookeeper1.domain,zookeeper2.domain,zookeeper3.domain:2181:/hbase-1:[email protected]:/etc/security/keytabs/phoenix.keytab

2.Thin Driver

基于 Phoenix Query Server,我们可以使用 Thin Driver 的方式进行连接,配置规则如下:

jdbc:phoenix:thin:[key=value[;key=value...]]

简单的例子:

jdbc:phoenix:thin:url=http://localhost:8765

复杂的例子:

jdbc:phoenix:thin:url=http://queryserver.domain:8765;serialization=PROTOBUF;authentication=SPENGO;principal=[email protected];keytab=/etc/security/keytabs/phoenix.keytab

官方文档链接:http://phoenix.apache.org/faq.html#What_is_the_Phoenix_JDBC_URL_syntax

你可能感兴趣的:(HBase)