快速开始
Hive JDBC 入门
登录后可跨设备保存划线和私人笔记登录
如何获取 Kyuubi JDBC 驱动
Kyuubi Thrift API 与 HiveServer2 完全兼容,因此从技术上讲,可以使用任意 Hive JDBC 驱动来连接 Kyuubi Server。但推荐使用 Kyuubi Hive JDBC 驱动,该驱动基于 Hive 3.1.x JDBC 驱动 fork 而来,旨在支持原版 Hive JDBC 驱动所缺失的一些功能。
该驱动可从 Maven Central 获取:
<dependency>
<groupId>org.apache.kyuubi</groupId>
<artifactId>kyuubi-hive-jdbc-shaded</artifactId>
<version>1.7.0</version>
</dependency>连接到未启用 Kerberos 的 Kyuubi 服务
以下 Java 代码通过 JDBC 直接连接 Kyuubi 服务,不使用 Kerberos 认证。
package org.apache.kyuubi.examples;
import java.sql.*;
public class KyuubiJDBC {
private static String driverName = "org.apache.kyuubi.jdbc.KyuubiHiveDriver";
private static String kyuubiJdbcUrl = "jdbc:kyuubi://localhost:10009/default;";
public static void main(String[] args) throws SQLException {
try (Connection conn = DriverManager.getConnection(kyuubiJdbcUrl)) {
try (Statement stmt = conn.createStatement()) {
try (ResultSet rs = stmt.executeQuery("show databases")) {
while (rs.next()) {
System.out.println(rs.getString(1));
}
}
}
}
}
}连接到启用 Kerberos 的 Kyuubi 服务器
以下 Java 代码使用 keytab 文件进行登录,并通过 JDBC 连接到 Kyuubi 服务器。
package org.apache.kyuubi.examples;
import java.sql.*;
public class KyuubiJDBCDemo {
private static String driverName = "org.apache.kyuubi.jdbc.KyuubiHiveDriver";
private static String kyuubiJdbcUrlTemplate = "jdbc:kyuubi://localhost:10009/default;" +
"kyuubiClientPrincipal=%s;kyuubiClientKeytab=%s;kyuubiServerPrincipal=%s";
public static void main(String[] args) throws SQLException {
String clientPrincipal = args[0]; // Kerberos principal
String clientKeytab = args[1]; // Keytab file location
String serverPrincipal = args[2]; // Kerberos principal used by Kyuubi Server
String kyuubiJdbcUrl = String.format(kyuubiJdbcUrlTemplate, clientPrincipal, clientKeytab, serverPrincipal);
try (Connection conn = DriverManager.getConnection(kyuubiJdbcUrl)) {
try (Statement stmt = conn.createStatement()) {
try (ResultSet rs = stmt.executeQuery("show databases")) {
while (rs.next()) {
System.out.println(rs.getString(1));
}
}
}
}
}
}评论
登录后参与评论
正在加载评论…
KnowForge