第一部分:搭建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. [Codeforces438E][bzoj3625] 小朋友和二叉树 [多项式求逆+多项式开根]

    题面 传送门 思路 首先,我们把这个输入的点的生成函数搞出来: $C=\sum_{i=0}^{lim}s_ix^i$ 其中$lim$为集合里面出现过的最大的数,$s_i$表示大小为$i$的数是否出现过 ...

  2. Glibc说明

    Glibc glibc是gnu发布的libc库,也即c运行库.glibc是linux系统中最底层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc.glibc除了封装linux操作 ...

  3. struts2之文件上传

    一.单文件上传 实例: 表单应该注意三个点   form中的method="post".enctype="multipart/form-data".input中 ...

  4. mdadm使用详解

    ★mdadm是multiple devices admin的简称,它是Linux下的一款标准的软件 RAID 管理工具,作者是Neil Brown 我们知道raidtools是Linux下一款经典的用 ...

  5. nginx tomcat负载均衡 使用redis session共享

    环境准备 1.准备一台nginx服务器 ip192.168.1.133 端口81 安装过程: #首先安装依赖: yum -y install gcc-c++ yum -y install pcre p ...

  6. windows 安装 mysql5.7

    1. 搜索“Mysql download”进入官网 或者点击链接 https://dev.mysql.com/downloads/ 进入官网,如下: 2. 下载对应的 MySQL 版本,如下: 点击 ...

  7. 64位操作系统安装32位客户端和PL/SQL

    PL/SQ只能使用32位的Oracle客户端.在64位系统下安装了64位的oracle 11g,使用PL/SQL需再安装32位Oracle客户端. 按以下方法试验成功: 1)安装32位的Oracle客 ...

  8. cocos2d programming guide 翻译 引导页(完结)

    http://bbs.tairan.com/article-25-1.html  Cocos2d官方入门指导 原文地址:http://www.cocos2d-iphone.org/wiki/doku. ...

  9. 明远智睿IMX6Q Android4.4.2移植USBWIFI(RTL8188EUS)

    移植过程中得到网友的不少帮助,很感谢!为了让更多的网友不像我这样折腾,特写此文以做参照.过程中主要参考< Realtek_Wi-Fi_SDK_for_Android_KK_4_4.pdf > ...

  10. Selenium2+python自动化13-多窗口、句柄(handle)【转载】

    前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口了.获取窗口的唯一标识用句柄表示,所以只需要切换句柄,我们就能在多个页面上灵活自如的操作了. 一.认识多窗 ...