drill 学习 七 drill jdbc 连接说明
drill 官方没有提供直接的jdbc支持,但是mapr 提供了一个
下载jdbc 驱动
可以直接在drill 的安装包提取,也可以在https://apache.osuosl.org/drill/ 地址下载
## drill jdbc 连接格式
drill jdbc 驱动支持了多种模式的连接配置: random,local,direct
- local 以及random格式
jdbc:drill:zk=<zk name>[:<port>][,<zk name2>[:<port>]
<directory>/<cluster ID>;[schema=<storage plugin>]
参数说明
schema 是默认存储插件的配置名称,可选
zk name 是zk 集群的节点名称,主机名或者ip 地址,使用local 或者主机名可以连接本地名称,必须
port zk 的端口名称,可选默认为2181,但是对于mapr 使用的是5181,可选
directory 指定zk 的目录名,默认额为/drill,对于多集群比较有用,可选
cluster id 默认为drillbits1 ,当有自定义的时候比较有用,可选
参考例子:
单机
jdbc:drill:zk=maprdemo:5181
jdbc:drill:zk=centos23.lab:2181/drill/docs41cluster-drillbits
jdbc:drill:zk=10.10.100.56:2181/drill/drillbits1;schema=hive
集群
jdbc:drill:zk=10.10.100.30:5181,10.10.100.31:5181,10.10.100.32:2181/drill/drillbits1;schema=hive
- 直接连接模式
格式:
jdbc:drill:drillbit=<node name>[:<port>][,<node name2>[:<port>]
<directory>/<cluster ID>[schema=<storage plugin>]
参数说明
drillbit= 指定 drill 集群的节点主机名或者ip
tries 指定最长尝试连接默认为5次
运行说明:此种模式需要rpc连接,端口为31010,对应docker 运行模式
docker run -i --name drill-1.17.0 -p 8047:8047 -p 31010:31010 -p 31011:31011 -p 31012:31012 -t apache/drill:1.17.0 /bin/bash
jdbc参考代码
Class.forName("org.apache.drill.jdbc.Driver");
Connection connection =DriverManager.getConnection("jdbc:drill:zk=
node3.mynode.com:2181/drill/my_cluster_com-drillbits");
Statement st = connection.createStatement();
ResultSet rs = st.executeQuery("SELECT * from cp.`employee`");
while(rs.next()){
System.out.println(rs.getString(1));
}
参考资料
https://www.cnblogs.com/rongfengliang/p/6925663.html
https://drill.apache.org/docs/using-the-jdbc-driver/
https://drill.apache.org/docs/ports-used-by-drill/