kkudu 提供了自己的api来对kudu进行操作,但是有的开发人员习惯用jdbc来操作数据库,这里我们采用impala 来实现该功能,
impala 安装积配置,请百度,我们的集群采用kerberos认证。
1.jdbc:impala 连接(impala 官方建议连接方式)
官网下载cloudera-connector zip
zip 中的其他jar包我们的集群已经有了,所以只加了ImpalaJDBC41.jar依赖
提交代码所在用户的 principal 是:impala/host@EXAMPLE.COM
连接代码如下:
import java.sql.DriverManager val driverName = "com.cloudera.impala.jdbc41.Driver" val url = "jdbc:impala://host:21050;AuthMech=1;KrbRealm=EXAMPLE.COM;KrbHostFQDN=host;KrbServiceName=impala" Class.forName(driverName) val conn = DriverManager.getConnection(url) val prst = conn.prepareStatement("select * from database.movieas limit 10") val rs = prst.executeQuery() while(rs.next()){ println(rs.getString(1)) }
2.jdbc:hive2 连接
hive-jdbc 下载 我用的是org.apache.hive hive-jdbc
示例代码
val driver = "org.apache.hive.jdbc.HiveDriver" val url = "jdbc:hive2://host:21050/;principal=impala/host@EXAMPLE.COM" Class.forName(driver) val conn = DriverManager.getConnection(url) val prst = conn.prepareStatement("select * from database.movieas limit 10") val rs = prst.executeQuery() while(rs.next()){ println(rs.getString(1)) }