学习笔记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\\libshare\\hadoop\\commonshare\\hadoop\\hdfs\\libshare\\hadoop\\hdfsshare\\hadoop\\mapreduceshare\\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开发应用的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记Hive —— Hive应用—— Hive导入及导出数据

hive学习笔记_hive的介绍与安装

学习笔记Hive —— Hive应用—— 数据库定义创建表

60分钟内从零起步驾驭Hive实战学习笔记

hive学习笔记_hive的表创建

Hive学习笔记