在JDBC中查询
原创大约 1 分钟
要想通过JDBC
代码的方式执行SQL
查询,需要先执行hiveserver2
命令。
> cd /home/work/hive-3.1.3
> ./bin/hiveserver2
......
创建Maven项目,引入依赖。
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>3.1.3</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
需要先在Hive中创建一张test
表才能实现数据查询。
> cd /home/work/hive-3.1.3
> ./bin/beeline -u jdbc:hive2://172.16.185.176:10000 -n root
......
0: jdbc:hive2://172.16.185.176:10000> create table test(id int, name string);
......
INFO : OK
INFO : Concurrency mode is disabled, not creating a lock manager
No rows affected (1.809 seconds)
再插入测试数据。
0: jdbc:hive2://172.16.185.176:10000> insert into test(id, name) values(1, "lixingyun");
......
INFO : OK
INFO : Concurrency mode is disabled, not creating a lock manager
No rows affected (10.025 seconds)
0: jdbc:hive2://172.16.185.176:10000> select * from test;
......
+----------+------------+
| test.id | test.name |
+----------+------------+
| 1 | lixingyun |
+----------+------------+
1 row selected (1.083 seconds)
开始编写实现代码。
package com.itechthink.hive;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
/**
* 通过JDBC代码操作Hive
* 需要先启动hiverserver2服务
*
*/
public class HiveJdbcJob {
public static void main(String[] args) throws Exception {
// 指定hiveserver2链接
String jdbcUrl = "jdbc:hive2://172.16.185.176:10000";
// user使用root,password随便指定
Connection conn = DriverManager.getConnection(jdbcUrl, "root", "any");
// 获取Statement
Statement stmt = conn.createStatement();
// 指定查询的sql
String sql = "select * from test";
// 执行sql
ResultSet res = stmt.executeQuery(sql);
// 循环读取结果
while (res.next()) {
System.out.println(res.getInt("id") + "\t" + res.getString("name"));
}
}
}
感谢支持
更多内容,请移步《超级个体》。