专业的编程技术博客社区

网站首页 > 博客文章 正文

大数据:在idea中使用hive-jdbc连接Hive

baijin 2024-08-16 11:56:22 博客文章 4 ℃ 0 评论

在开发环境中,除了使用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();
        }
    }
}

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表