学习笔记hive——hive开发应用(代码片段)

别呀 别呀     2023-01-10     443

关键词:

一、任务

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导入及导出数据通过HDFS直接导入导出通过Hive命令导入导出4.1、Hive导入数据的语法LOADDATA[LOCAL]INPATH'filepath'[OVERWRITE]INTOTABLEtablename[PARTITION(partcol1=val1,partcol2=val2...)]LOCAL:导入语句带有LOCALÿ 查看详情

学习笔记hive——hive应用——数据库定义创建表(代码片段)

一、任务讲解泰坦尼克号乘客信息存储与分析泰坦尼克号乘客信息存储与分析:创建乘客信息表导入数据到表中统计获救与死亡情况统计舱位分布情况统计港口登船人数分布情况统计性别与生存率的关系统计客舱等级与生存... 查看详情

hive学习笔记(代码片段)

安装配置安装hive下载hive解压重命名添加环境变量Vi/etc/proflie使环境变量生效Source/etc/profile修改配置文件cphive-env.sh.templatehive-env.shHiveMetastore配置将自带的derby数据库替换为mysql数据库参考文章https://my.oschina.net/u/4292373/blog/3497563登录... 查看详情

学习笔记hive——hive安装配置(代码片段)

一、环境介绍环境描述4个Linux操作系统虚拟机使用centos7镜像配置安装java1.8以上版本安装Hadoop2.6.5以上版本安装MySQL5.1以上版本二、安装MySQL(这里我是CentOs7)安装教程链接:https://www.jb51.net/article/150557.htm1、安装完成... 查看详情

学习笔记hive——查询优化(代码片段)

一、视图1.1、Hive的视图视图是基于数据库的基本表进行创建的一种伪表,数据库中储存视图的定义,不存数据项,数据项仍然存在基本表中它可作为一个抽象层,将数据发布给下游用户。目前Hive版本支持逻辑视... 查看详情

hive学习笔记(代码片段)

安装配置安装hive下载hive解压重命名添加环境变量Vi/etc/proflie使环境变量生效Source/etc/profile修改配置文件cphive-env.sh.templatehive-env.shHiveMetastore配置将自带的derby数据库替换为mysql数据库参考文章https://my.oschina.net/u/4292373/blog/3497563登录... 查看详情

学习笔记--hive网站日志统计分析(代码片段)

前言本次实践的目的是结合之前所学flume、hadoop、hive几个主要技术,完成一个小案例。目标:统计出独立ip数量统计一个ip使用的header数量访问最多的url链接每个ip常访问的url单日每小时访问量折线图准备安装并配置好flume... 查看详情

学习笔记hive——自定义函数(代码片段)

一、自定义函数简介1.1、函数类型UDF:用户定义函数UDF操作作用于单个数据行,并且产生一个数据行作为输出。大多数函数都属于这一类(比如数学函数和字符串函数)UDAF:用户定义聚集函数UDAF接受多个输入... 查看详情

hive学习笔记:查看添加删除分区(代码片段)

一、查看分区查看分区showpartitionstable_name;/*update_date=20230305update_date=20230312update_date=20230319*/查看分区表描述desctable_namepartition(update_date=20230305);查看外部表,特定指定的位置descextendedtable_namepartition(update_date=20230305);二、添加分区alt... 查看详情

hive学习笔记---用中文创建表名和字段(代码片段)

有些人问能不能用中文来创建表名或者字段,是可以的。这里给一个例子:createtablehehe(`来试试`string);可以这样子建表,大家看到这里的符号 “ ` ” 作用很大,一是可以在建表的时候使用中文,二... 查看详情

hive简介及使用(代码片段)

...educe分布式计算->难度大hive->SQL语句mysql简化开发减少学习成本2、优缺点优点:(1)操作接口采用了sql,简化开发,减少学习成本( 查看详情

hive笔记整理(代码片段)

[TOC]Hive笔记整理(三)Hive的函数Hive函数分类函数的定义和java、mysql一样,有三种。UDF(UserDefinitionFunction用户定义函数)一路输入,一路输出sin(30°)=1/2UDAF(UserDefinitionAggregationFunction聚合函数)多路输入,一路输出maxmincountsumavg... 查看详情

学习笔记hive——实例:航空客户价值分析数据预处理(代码片段)

一、背景与目标1.1、背景1.、行业内竞争民航的竞争除了三大航空公司之间的竞争之外,还将加入新崛起的各类小型航空公司、民营航空公司,甚至国外航空巨头。航空产品生产过剩,产品同质化特征愈加明显,... 查看详情

hive学习:hive安装(代码片段)

安装前提已安装并配置了Hadoop集群(单机或者全分布都行)软件下载Hive官网:https://hive.apache.org/index.htmlHive安装配置环境变量将下载的Hive包上传到机器中,解压到指定路径编辑/etc/profile,配置Hive的环境变量exportHIVE_HOME=/.../apache-... 查看详情

hive学习hive安装(代码片段)

一,文件下载二,hive安装  2.1mysql安装  2.2解压hive  2.3配置文件配置  2.4环境变量配置  2.5 添加mysql的connect的jar包三,hive使用方式  3.1hive直接启动服务  3.2hiveserver2以一个服务的方式启动  3.3hive-e直接脚... 查看详情

hive笔记整理(代码片段)

[TOC]Hive笔记整理(二)Hive中表的分类managed_table—受控表、管理表、内部表表中的数据的生命周期/存在与否,受到了表结构的影响,当表结构被删除的,表中的数据随之一并被删除。默认创建的表就是这种表。可以在cli中通过des... 查看详情

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

 本博文的主要内容是:  1. Hive本质解析  2. Hive安装实战  3. 使用Hive操作搜索引擎数据实战   SparkSQL前身是Shark,Shark强烈依赖于Hive。Spark原来没有做SQL多维度数据查询工具,后来开发了Shark,Shark依... 查看详情

hive学习之路hive中文乱码(代码片段)

Hive注释中文乱码创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码createexternaltablemovie(userIDintcomment‘用户ID‘,movieIDintcomment‘电影ID‘,ratingintcomment‘电影评分‘,timestampedbigintcomment‘评分时间戳‘,... 查看详情