Hive JDBC 访问

最近更新时间:2024-05-11 14:37:42

我的收藏

环境准备

依赖:JDK 1.8

创建执行机

如果没有执行机,请先购买一台 CVM 作为执行机。
1. 进入腾讯云云服务器 。在对应地域单击新建



2. 指定某一个私有网络 VPC 创建执行机




连接标准 Spark 引擎

创建服务访问链接

进入数据引擎页面,单击右侧创建终端节点,选择执行机所在的 VPC 和子网,单击创建后生成两个访问链接,分别为 Hive2 和 Presto 协议,链接标准 Spark 引擎使用 Hive2 协议,如下:



jdbc:hive2://{endpoint}:10009/?spark.engine={DataEngineName};spark.resourcegroup={ResourceGroupName};secretkey={SecretKey};secretid={SecretId};region={Region};kyuubi.engine.type=SPARK_SQL;kyuubi.engine.share.level=ENGINE

加载 JDBC 驱动

Class.forName("org.apache.hive.jdbc.HiveDriver");

通过 DriverManager 创建 Connection

jdbc:hive2://{endpoint}:10009/?spark.engine={DataEngineName};spark.resourcegroup={ResourceGroupName};secretkey={SecretKey};secretid={SecretId};region={Region};kyuubi.engine.type=SPARK_SQL;kyuubi.engine.share.level=ENGINE
Properties properties = new Properties();
properties.setProperty("user", {AppId});
Connection cnct = DriverManager.getConnection(url, properties);

JDBC 连接串参数说明

参数
必填
说明
spark.engine
标准 Spark 引擎名称
spark.resourcegroup
标准 Spark 引擎资源组名称,不指定则创建临时资源
secretkey
腾讯云 API 密钥管理中的 SecretKey
secretid
腾讯云 API 密钥管理中的 SecretId
region
地域,目前 DLC 服务支持 ap-nanjing, ap-beijing, ap-beijing-fsi, ap-guangzhou,ap-shanghai,
ap-chengdu,ap-chongqing, na-siliconvalley, ap-singapore, ap-hongkong, na-ashburn, eu-frankfurt,
ap-shanghai-fsi
kyuubi.engine.type
固定填:SparkSQLTask
kyuubi.engine.share.level
固定填:ENGINE
user
用户 APPID

数据查询完整示例

import org.apache.hive.jdbc.HiveStatement;
import java.sql.*;
import java.util.Properties;

public class TestStandardSpark {
public static void main(String[] args) throws SQLException {
try {
Class.forName("org.apache.hive.jdbc.HiveDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
return;
}
String url = "jdbc:hive2://{endpoint}:10009/?spark.engine={DataEngineName};spark.resourcegroup={ResourceGroupName};secretkey={SecretKey};secretid={SecretId};region={Region};kyuubi.engine.type=SPARK_SQL;kyuubi.engine.share.level=ENGINE";
Properties properties = new Properties();
properties.setProperty("user", {AppId});
Connection connection = DriverManager.getConnection(url, properties);
HiveStatement statement = (HiveStatement) connection.createStatement();
String sql = "SELECT * FROM dlc_test LIMIT 100";
statement.execute(sql);
ResultSet rs = statement.getResultSet();
while (rs.next()) {
System.out.println(rs.getInt(1) + ":" + rs.getString(2));
}
rs.close();
statement.close();
connection.close();
}
}
编译完成后,您可以将 jar 包提交到执行机上执行。