第一部分:搭建Hive JDBC开发环境

搭建:Steps
•新建工程hiveTest
•导入Hive依赖的包
•Hive  命令行启动Thrift服务
•hive --service hiveserver &
        
第二部分:基本操作对象的介绍
Connection
•说明:与Hive连接的Connection对象
•Hive 的连接
•jdbc:hive://IP:10000/default“
•获取Connection的方法
•DriverManager.getConnection("jdbc:hive://IP:10000/default", "", "");
Statement
•说明: 用于执行语句
•创建方法
•Statement stmt = con.createStatement();
•主要方法
•executeQuery
•execute
ResultSet
•说明:用来存储结果集
•创建方法
•stmt.executeQuery 方法得到
•主要方法
•getString()
特殊类型的处理
•Array
•Map
•Struct
        
第三部分:简单示例
背景
     随着 3G 时代的到来,选择各种移动终端来上网的人越 来越多,如手机、平板等,这里面蕴含着巨大的商机 ,因为终端可以直接精确到人。所以对用户上网日志 的分析,也成为一个新热点,这些在数据库时代是不 可想象的,因为数据规模超大,云计算解决了这个问 题
需求描述
•分析用户的手机上网日志,得到 手机流量统计 信息与根据终端来获得流量的统计信息
 
表规划
• 日志表 log
• 字段
       用户手机号码 ,终端类型 ,访问的URL ,访问开始时间 ,访问结束时间 ,访问流量
    phone string ,client_type  string ,url  string,visit_begintime timestamp,visit_endtime timestamp,traffic  bigint
• 数据文件
•数据间以\t分隔,行之间以\n分隔
•数据示例:
      13154587453     andorid www.baidu.com   2011-09-01 17:30:08     2011-09-01 17:31:09     10
•数据文件位置:
    /home/test/log.txt
• 手机号归属地 phone_location
• 字段
用户手机号码 ,归属地
phone string ,location stirng
 
• 数据文件
数据间以\t分隔,行之间以\n分隔
数据示例:1334567890 chaoyang
数据文件位置:
/home/test/phone_local.txt
• 手机流量统计信息 total_traffic_by_phone
• 字段
手机号码 ,总流量(k) , 归属地, 访问总时长(秒)
               phone string,totol_traffic bigint,area string,visit_total_time timestamp
• 数据文件
数据间以 \t 分隔,行之间以 \n 分隔
     数据示例:
           13154587453 102 chaoyang  123
 

• 终端类型统计信息 total_traffic_by_client_type
• 字段
终端类型 ,访问总流量(k)
       client_type string,totoal_traffic bigint
• 数据文件
数据间以 \t 分隔,行之间以 \n 分隔
     数据示例:
 andorid 1034
实现步骤
•初始化数据,表
•示例:create external table phone_location (phone string,area string) row format delimited fields terminated by '\t' lines terminated by '\n' stored as textfile
•编写处理逻辑
Java 代码示例
try {
Class.forName(driverName);
Connection con = DriverManager.getConnection("jdbc:hive://IP:10000/default", "", "");
Statement stmt = con.createStatement();
String sql = "show tables ";
// show tables
System.out.println("Running: " + sql);
ResultSet res = stmt.executeQuery(sql);
if (res.next()) {
System.out.println(res.getString(1));
}
 
        
第四部分:基于Hive的数据库连接池
基于Hive的数据库连接池的实现
•使用DataSource作为数据源的实现
•DBConnectionManager 采用单例模式
•提供获得连接,关闭连接的方法
•setupDataSource()
•DBConnectionManager getInstance()
•close(Connection conn)
•synchronized Connection getConnection()

Hive JDBC——深入浅出学Hive的更多相关文章

  1. hive参数——深入浅出学Hive

    第一部分:Hive 参数 hive.exec.max.created.files •说明:所有hive运行的map与reduce任务可以产生的文件的和 •默认值:100000  hive.exec.d ...

  2. Hive QL——深入浅出学Hive

    第一部分:DDL DDL •建表 •删除表 •修改表结构 •创建/删除视图 •创建数据库 •显示命令 建表 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_ ...

  3. Hive安装与配置——深入浅出学Hive

    第一部分:软件准备与环境规划 Hadoop环境介绍 •Hadoop安装路径 •/home/test/Desktop/hadoop-1.0.0/ •Hadoop 元数据存放目录 •/home/test/ ...

  4. Hive 内建操作符与函数开发——深入浅出学Hive

    第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比较: > •大 ...

  5. 《OD学hive》第四周0717

    一.Hive基本概念.安装部署与初步使用 1. 后续课程 Hive 项目:hadoop hive sqoop flume hbase 电商离线数据分析 CDH Storm:分布式实时计算框架 Spar ...

  6. 《OD学hive》第六周20160731

    一.hive的压缩 1. hadoop的压缩 1)为什么需要压缩 MapReduce的性能瓶颈:网络IO.磁盘IO 数据量:对于MapReduce的优化,最主要.根本就是要能够减少数据量 Combin ...

  7. 《OD学Hive》第六周20160730

    一.Hive的JDBC连接 日志分析结果数据,存储在hive中 <property> <name>hive.server2.thrift.port</name> & ...

  8. Hive学习之六 《Hive进阶— —hive jdbc》 详解

    接Hive学习五 http://www.cnblogs.com/invban/p/5331159.html 一.配置环境变量 hive jdbc的开发,在开发环境中,配置Java环境变量 修改/etc ...

  9. Hive 8、Hive2 beeline 和 Hive jdbc

    1.Hive2 beeline  Beeline 要与HiveServer2配合使用,支持嵌入模式和远程模式 启动beeline 打开两个Shell窗口,一个启动Hive2 一个beeline连接hi ...

随机推荐

  1. 二、vue响应式对象

    Object.defineProperty Object.defineProperty 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象,先来看一下它的语法: Obj ...

  2. 【bzoj1976】[BeiJing2010组队]能量魔方 Cube 网络流最小割

    题目描述 一个n*n*n的立方体,每个位置为0或1.有些位置已经确定,还有一些需要待填入.问最后可以得到的 相邻且填入的数不同的点对 的数目最大. 输入 第一行包含一个数N,表示魔方的大小. 接下来 ...

  3. ESXI6.0 时间(时区)显示不一致

    ESXI6.0 时间(时区)显示不一致 来源 http://blog.51cto.com/jdonghong/1957118 近日由于设置ESXI计划任务,无意间发现了esxi服务器客服端时间和系统显 ...

  4. windows安装 Nodejs,NPM, CNPM

    1, dowload Nodejs from :  http://nodejs.cn/download/ 下载完毕后,可以安装node,建议不要安装在系统盘(本例安装在 D:\vueProject) ...

  5. maven使用nexus服务器

    1.找到maven的安装路径,例如:C:\apache-maven-3.3.9 打开conf目录下的settings.xml文件 2.在<servers>节点下,配置 <server ...

  6. Download RPM packages from a YUM repo without installing

    This how-to will explain how to download rpm packages from a yum repository without installing them. ...

  7. linux 大中括号变量解读

    Linux中的小括号和大括号,${}/$()/()/{}/${var:-string}/${var:=string}/${var:+string}/${var:?string}/${var%patte ...

  8. bzoj 1314: River过河 树套树+单调队列

    Description ZY带N个小Kid过河,小KID分成两种:高一年级,高二年级,由于存在代沟问题,如果同一条船上高一年级生和高二年级生数量之差超过K,就会发生不和谐的事件.当然如果一条船上全是同 ...

  9. 【ZOJ4067】Books(贪心)

    题意:DG在书店买书,从左到右第i本书价格为ai. DG从左走到右,能买就买.如果已知DG买了m本书,问他原本最多有多少钱. 若无上限,输出“Richman”,若不可能买这么多书,输出“Impossi ...

  10. jquery判断ie与使用ie来判断ie,推荐ie样式块

    用jquery来判断浏览器类型,如果只是仅仅为了判断浏览器的类型而使用该方法,那么不建议使用,只是在你已经使用了jquery才建议使用,因为没必要因为这么小的一个功能就加载那么大的类库吧 Jquery ...