文档章节

Hive JDBC教程

boonya
 boonya
发布于 2019/07/02 13:46
字数 497
阅读 51
收藏 0

由于项目中需要用到hive-jdbc从数据仓库拉数据下来,所以简单的学一下hive,hive数据仓库建构在hadoop集群之上,数据存在hdfs文件系统中,hive中执行的操作会装换成mapreduce作业进行执行,hive支持类似SQL的语言HQL,hive采用元数据对表进行管理,元数据有三种存放模式:嵌入模式,远程模式,本地模式;hive提供了强大的编程接口,hive jdbc可以让你如使用普通的jdbc一般来操作hive表以及数据。

1.添加依赖


        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-hdfs</artifactId>
            <version>2.6.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>2.6.4</version>
        </dependency>

        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.1.0</version>
            <exclusions>
                <exclusion>
                    <artifactId>
                        pentaho-aggdesigner-algorithm
                    </artifactId>
                    <groupId>org.pentaho</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>1.1.0</version>
        </dependency>

2.jdbc连接hive


public class TestHive {
        private static String driverName = "org.apache.hive.jdbc.HiveDriver";//jdbc驱动路径
        private static String url = "jdbc:hive2://hiveserver.xxx.com:10000/dbName";//hive库地址+库名
        private static String user = "username";//用户名
        private static String password = "pwd";//密码
        private static String sql = "";
        private static ResultSet res;

        public static void main(String[] args) {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = getConn();
            System.out.println(conn);
            stmt = conn.createStatement();
                        String tableName="tab_name";//hive表名
                        sql = "select * from " + tableName;
                System.out.println("Running:" + sql);
                res = stmt.executeQuery(sql);
                System.out.println("执行 select * query 运行结果:");
                while (res.next()) {
                    System.out.println(res.getInt(1) + "\t" + res.getString(2));
                }

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.exit(1);
        } catch (SQLException e) {
            e.printStackTrace();
            System.exit(1);
        } finally {
            try {
                if (conn != null) {
                    conn.close();
                    conn = null;
                }
                if (stmt != null) {
                    stmt.close();
                    stmt = null;
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    private static Connection getConn() throws ClassNotFoundException,
            SQLException {
        Class.forName(driverName);
        Connection conn = DriverManager.getConnection(url, user, password);
        return conn;
    }
}

3.查询hive表数据

这个就和普通的jdbc差不太多,也是用sql的方式进行查询,具体的查询语法,可以参考hive官网

4.封装hive工具类

本文转载自:https://www.cnblogs.com/ae6623/p/5686504.html

boonya
粉丝 79
博文 375
码字总数 74754
作品 0
海淀
高级程序员
私信 提问
加载中

评论(0)

VirtualBox、CentOS 6.4、Hadoop、Hive玩起

1 安装VirtualBox: VirtualBox是一款开源免费的并且非常强大的虚拟机软件,同时支持X86和AMD64/Intel64,可以在多个操作系统平台上运行。与同性质的VMWare和Virtual PC比较,VirtualBox独到...

smile_zjw
2013/11/26
1.6K
1
通过jdbc连接hive报java.sql.SQLException: Method not supported问题

今天尝试通过jdbc连接hive,JDBC直接连接是正常成功的,实例: 但是在spark程序通过jdbc连接hive,却报错,实例: 在pom.xml中引入的是hive-jdbc-0.13.0.jar包会报 hive jdbc java.sql.SQLEx...

填坑大人
2018/08/28
0
0
JDBC访问Hive失败 & beenline连接Hive 和导入文件 时提示anonymous用户权限不够

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zt15732625878/article/details/87889293 前言 最近项目中有跟hive交互的部分,在测试环境用JDBC方式和beenl...

大白快跑8
2019/02/23
0
0
hive设置外部数据仓库(36)

使用MySQL作为hive的metastore 1.1 安装mysql 1.2 把mysql-connector-java-11.10.jar放到hive的lib目录下 1.3 修改hive/conf目录下的文件hive-site.xml <property> <name>javax.jdo.option.C......

肖鋭
2014/04/08
28
0
0028-如何在CDH未启用认证的情况下安装及使用Sentry

1.文档编写目的 CDH平台中的安全,认证(Kerberos/LDAP)是第一步,授权(Sentry)是第二步。如果要启用授权,必须先启用认证。但在CDH平台中给出了一种测试模式,即不启用认证而只启用Sentr...

Hadoop实操
2018/11/20
55
0

没有更多内容

加载失败,请刷新页面

加载更多

眉山哪里可以开发票

眉山哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

834585
11分钟前
23
0
乐山哪里可以开发票

乐山哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

52325418
11分钟前
29
0
攀枝花哪里可以开发票

攀枝花哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bri...

68735
12分钟前
21
0
来宾哪里可以开发票

来宾哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

3248483
12分钟前
33
0
百色哪里可以开发票

百色哪里可以开发票【電徴同步;132 * 29 30 * O5 68】李生,诚、信、合、作,保、真、售、后、保、障、长、期、有、效。adb的全称为Android Debug Bridg...

2468643
13分钟前
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部