Hive连接方式
更新时间:2025-01-23
本文介绍 BMR 集群如何连接 Hive 提交 Hive SQL,具体方式包括 Hive 客户端、Beeline 客户端、Java。
前提条件
- 已创建 BMR 集群,且选择了 Hive 服务,创建集群详情请参见创建集群。
- 用户如需使用安全模式集群,在创建集群时,需将安全模式开关设置为开启。
通过Hive客户端连接
普通集群
- SSH登录集群,参考SSH连接到集群。
- 执行
hive
命令即可完成连接。
安全模式集群
- SSH登录集群,参考SSH连接到集群。
- 执行以下命令进行验证:
Plain Text
1kinit -kt /etc/emr/hive-conf/keytab/hive.keytab hive/<主节点名称>@BAIDU.COM
- 执行
hive
命令完成连接。
通过Beeline客户端连接
普通集群
- SSH登录集群,参考SSH连接到集群。
- 执行以下命令完成连接:
Plain Text
1beeline -u jdbc:hive2://<主节点名称>:10000
安全模式集群
- SSH登录集群,参考SSH连接到集群。
- 执行以下命令进行认证:
Plain Text
1kinit -kt /etc/security/keytabs/hive.service.keytab hive/<主节点名称>@BAIDU.COM
- 执行以下命令连接 Beeline:
Plain Text
1beeline -u "jdbc:hive2://<主节点名称>:10000/;principal=hive/<主节点名称>@BAIDU.COM
通过Java连接
注意事项
- 在pom.xml文件中配置项目依赖(hadoop-common和hive-jdbc)。本示例新增的项目依赖如下所示。
Plain Text
1<dependencies>
2 <dependency>
3 <groupId>org.apache.hive</groupId>
4 <artifactId>hive-jdbc</artifactId>
5 <version>3.1.3</version>
6 </dependency>
7 <dependency>
8 <groupId>org.apache.hadoop</groupId>
9 <artifactId>hadoop-common</artifactId>
10 <version>3.2.3</version>
11 </dependency>
12</dependencies>
- 编写代码,连接HiveServer2并操作Hive表数据。示例代码如下所示。
Plain Text
1import java.sql.*;
2
3publicclassApp
4{
5 privatestaticStringdriverName="org.apache.hive.jdbc.HiveDriver";
6
7 publicstaticvoidmain(String[] args)throws SQLException {
8
9 try {
10 Class.forName(driverName);
11 } catch (ClassNotFoundException e) {
12 e.printStackTrace();
13 }
14 Connectioncon= DriverManager.getConnection(
15 "jdbc:hive2://master-2044d6e-2:10000", "root", "");//其中 master-2044d6e-2 为节点名称
16
17 Statementstmt= con.createStatement();
18
19 Stringsql="select * from sample_tbl limit 10";
20 ResultSetres= stmt.executeQuery(sql);
21
22 while (res.next()) {
23 System.out.println(res.getString(1) + "\t" + res.getString(2));
24 }
25
26 }
27}
- 打包项目工程,生成JAR包,上传JAR包至 BMR 集群 Master 节点。
- 测试验证JAR包正常运行:
Plain Text
1java -jar bmr-hiveserver2-1.0.jar