Hive远程模式搭建好之后,可以使用Beeline客户端或JDBC远程访问Hive了
启动HiveServer2服务
$ hive --service hiveserver2 &
新建Java Maven项目,在pom.xml中添加以下依赖
<dependencies>
<dependency>
<groupId>jdk.tools</groupId>
<artifactId>jdk.tools</artifactId>
<version>1.8</version>
<scope>system</scope>
<systemPath>${JAVA_HOME}/lib/tools.jar</systemPath>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hbase/hbase-mapreduce -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>2.3.9</version>
</dependency>
</dependencies>
编写JDBC程序
主要分五个步骤:
1.加载JDBC驱动
使用Class.forName()加载JDBC驱动
2.获取连接
使用DriverManager驱动管理类获取Hive连接
3.执行查询
通过Statement对象的executeQuery()方法执行查询命令
4.处理结果集
通过ResultSet对象获取返回的结果。ResultSet是JDBC用于装载返回数据的类。
5.关闭连接
关闭连接,释放资源
package org.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* Hive JDBC 测试类
*/
public class HiveJDBCTest {
public static void main(String[] args) throws Exception{
// 驱动名称
String driver = "org.apache.hive.jdbc.HiveDriver";
// 连接地址,默认使用端口10000
String url = "jdbc:hive2://192.168.153.133:10000/test_db";
// 用户名(Hadoop集群的登录用户)
String username = "hadoop";
// 密码
String password = "";
// 1.接在JDBC裙动
Class.forName(driver);
// 2.获取连接
Connection conn = DriverManager.getConnection(url, username, password);
Statement stmt = conn.createStatement();
// 3.执行查询
ResultSet res = stmt.executeQuery("select * from t_user");
// 4.处理结果
while(res.next()){
System.out.println(res.getInt(1) + "\t" + res.getString(2));
}
// 5.关闭连接
res.close();
stmt.close();
conn.close();
}
}