在开发环境中,除了使用dbeaver这样的管理工具连接查询hive之外,使用hive-jdbc连接hive查询hive数据库表也是比较容易。
连接的环境前提
- hiveserver2和metastore服务正常。
- 需要知道正确的hive、hdfs的服务端版本信息。
Hive JDBC
- 引入依赖,配置pom
# 在pom中添加如下内容
<dependencies>
<!-- jdbc连接 和 hadoop版本-->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-jdbc</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
</dependencies>
- 测试脚本
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class HiveDemo {
/*hiverserver2 版本驱动*/
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws Exception {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
System.exit(1);
}
Connection conn = DriverManager.getConnection("jdbc:hive2://hiveserver2:10000/dbname", "username", "password");
try {
Statement st = conn.createStatement();
ResultSet ret = st.executeQuery("select count(1) as cnt from tablename");
if (ret.next()) {
while (ret.next()) {
StringBuilder sb = new StringBuilder();
sb.append(" cnt:" + ret.getString("cnt"));
System.out.println(sb.toString());
}
System.out.println(ret.getInt(1));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
conn.close();
}
}
}
本文暂时没有评论,来添加一个吧(●'◡'●)