在IDEA中用jdbc连接hive
本文介绍通过远程windows系统上的IDEA使用jdbc连接hive并对其进行基本的查询操作。
首先建一个maven工程,导入依赖包导pom.xml
<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>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0</version>
</dependency>
新建类,代码如下:
public class HiveJdbc {
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);
}
//连接对象,连接hive的本机ip,不指定端口,默认端口号是10000,数据库名是mydemo,连接hive的账号是hiveuser,密码是123456
Connection con = DriverManager.getConnection("jdbc:hive://192.168.64.167:10000/mydemo","hiveuser","123456");
String sql = "select userid,username from userinfos"
//执行预编译执行对象PreparedStatemen,只接受值类型参数
PreparedStatement preparedStatement = con.prepareStatement(sql);
//返回结果集
ResultSet rst = preparedStatement.executeQuery();
//ResultSet 是一根指向某数据表的指针,读取数据是一行一行从数据表中读取的
while (rst.next()){
System.out.println(rst.getInt("userid")+":"+rst.getString("username"));
}
//关闭连接
con.close();
}
最后在Linux系统下启动hive,启动之前需要先启动hasdoop
hive --service metastore
进入hive
hive
在运行main方法就可以看到数据了!很简单,和jdbc连接mysql数据库很像,只是加载的驱动,连接的本机地址和端口号不一样。