第一部分:搭建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. [CF954G]Castle Defense

    题目大意:有$n$个点,每个点最开始有$a_i$个弓箭手,在第$i$个位置的弓箭手可以给$[i-r,i+r]$区间加上$1$的防御,你还有$k$个弓箭手,要求你最大化最小防御值 题解:二分答案,从右向 ...

  2. JavaScript 代码性能优化总结

    本文转自:http://mp.weixin.qq.com/s?__biz=MzAxODE2MjM1MA==&mid=400360237&idx=2&sn=eb00241cb3b ...

  3. DP———4.完全背包问题(容量为V的背包可装最大价值的问题)

    Piggy-Bank Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  4. windows 系统下git 的安装

    在linux系统下,可以直接在命令窗口安装和使用git.但是,在windows系统下,想要达到同样的效果,可以安装git,使用git bash到达效果.具体安装步骤如下: 第一步:官网上下载git 网 ...

  5. Matlab 几种卷积的实现与比较(conv与filter,conv2与filter2)

    Matlab 几种卷积的实现与比较(conv与filter,conv2与filter2)     最近在做控制算法实现的时候,对于其中参杂的各种差分.卷积很头疼,就在网上搜集了些资料,汇总于此,以做备 ...

  6. 狂K 线段树

    想写好树剖~~线段树very important HDU 1166 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536 ...

  7. query的list()和iterate()区别 面试题

    query的list()和iterate()区别 1.返回的类型不一样,list返回List,iterate返回iterator 2.查询策略不同. 获取数据的方式不一样,list会直接查询数据库,i ...

  8. centos 安装squid http代理

    yum -y install squid service squid start service iptables stop

  9. COMPANY_点取消会卡死的解决方法

    // OLD void ctonedlg::onbtn_basedir_clicked() {     m_basedir = getUserSelectDir();     doSearchDir( ...

  10. python接口自动化10-token登录【转载】

    本篇转自博客:上海-悠悠 原文地址:http://www.cnblogs.com/yoyoketang/tag/python%E6%8E%A5%E5%8F%A3%E8%87%AA%E5%8A%A8%E ...