学习笔记Hive —— Hive开发应用
Posted 别呀
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Hive —— Hive开发应用相关的知识,希望对你有一定的参考价值。
一、任务
1.1、商品零售购物篮分析
现代商品种类繁多,顾客往往会由于需要购买的商品众多而变得疲于选择,且顾客并不会因为商品选择丰富而选择购买更多的商品。
繁杂的选购过程往往会给顾客疲惫的购物体验。
1.2、了解顾客需求
1.3、任务目标
- 创建订单表和物品分类表
- 统计顾客数量和商品购买数量
- 统计各类型商品的购买情况
- 统计所有商品中排名前20的热销商品
- 统计不同类别商品中排名前10的热销商品
- 将同一个客户的订单整合为一列并写入HDFS
二、配置Hive的java开发环境
2.1、搭建开发环境
- 在Eclipse中创建Java工程
- 导入Hive安装包下lib目录中所有的Jar包
- 导入Hadoop安装包下
share\\hadoop\\common\\lib
、share\\hadoop\\common
、share\\hadoop\\hdfs\\lib
、share\\hadoop\\hdfs
、share\\hadoop\\mapreduce
、share\\hadoop\\mapreduce\\lib
的Jar包
启动远程服务:
- 在Linux端执行:
hive --service hiveserver2 &
- 查看:
netstat -nplt | grep 10000
2.2、Hive连接
HiveServer2
目前Hive的Thrift服务端通常使用HiveServer2,它是HiveServer改进版本,它提供了新的ThriftAPI来处理JDBC或者ODBC客户端,可以进行Kerberos身份验证,支持多个客户端并发。
BeeLine
HiveServer2还提供了新的CLI:BeeLine,它是Hive 0.11引入的新的交互式CLI,基于SQLLine,可以作为Hive JDBC Client 端访问HiveServer2。
通过BeeLine连接hive
hive安装目录/bin/beeline -u jdbc:hive2://hiveServer2所在ip:端口号 -n 用户名
例如: beeline -u jdbc:hive2://192.168.128.130:10000 -n root
2.2.1、创建Connection连接
String driverName ="org.apache.hive.jdbc.HiveDriver";
String url="jdbc:hive2://192.168.128.10:10000/default";
String username="root";
String password=“root";
Class.forName(driverName);
Connection connection = DriverManager.getConnection(url, username, password);
Statement stmt = connection.createStatement();
stmt.execute("CREATE DATABASE shop");
connection.close();
三、任务步骤
3.1、创建订单表和物品分类表
3.2、导入数据到订单表和物品分类表
3.3、统计顾客数量和商品销售量
3.4、统计各类型商品的购买情况
- 关联订单表和类别表
- 按商品类型分组统计并排序
3.5、统计所有商品中排名前20的热销商品
- 按商品分组统计销售量
- 排序并选出排名前20的商品
3.6、统计不同类别商品中排名前10的热销商品
- 关联订单表和类别表
- 按商品类型和商品分组统计各组各个商品的销售量
- 对每种商品类型中的商品按销售量降序排序
- 取出每种商品类型中排序前10的商品
row_number() over()分组排序功能
3.7、将同一个客户的订单整合为一列并写入HDFS
- 通过HQL将表数据写入HDFS
collect_list(字段) 将某字段拼成列表
concat_ws(',',collect_list(字段)) 设置拼接时的分隔符
以上是关于学习笔记Hive —— Hive开发应用的主要内容,如果未能解决你的问题,请参考以下文章