JAVA如何连接Hive

在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数据库很像,只是加载的驱动,连接的本机地址和端口号不一样。

猜你喜欢

转载自blog.csdn.net/zp17834994071/article/details/106930362