1.什么是Phonenix?
Phoenix是构建在HBase上的一个SQL层,能让我们用标准的JDBC APIs而不是HBase客户端APIs来创建表,插入数据和对HBase数据进行查询。
Phoenix完全使用Java编写,作为HBase内嵌的JDBC驱动。Phoenix查询引擎会将SQL查询转换为一个或多个HBase扫描,并编排执行以生成标准的JDBC结果集。直接使用HBase API、协同处理器与自定义过滤器,对于简单查询来说,其性能量级是毫秒,对于百万级别的行数来说,其性能量级是秒。
Phoenix通过以下方式使我们可以少写代码,并且性能比我们自己写代码更好:
将SQL编译成原生的HBase scans。
确定scan关键字的最佳开始和结束
让scan并行执行
…
2.Phoenix和Hbase整合
- 安装Hbase集群 这里不做安装
- 将phoenix-[version]-server.jar放入服务端和master节点的HBase的lib目录下
- 重启Hbase集群
Phonenix JDBC连接
注意:需要把本地的hosts添加域名
public static Connection GetConnection() {
Connection cc = null;
String driver = "org.apache.phoenix.jdbc.PhoenixDriver";
String url = "jdbc:phoenix:master,slave1,slave2:2181";
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
if (cc == null) {
try {
cc = DriverManager.getConnection(url);
} catch (SQLException e) {
e.printStackTrace();
}
}
return cc;
}
public static void main(String[]args){
System.out.println(GetConnection());
}