版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、阮榕城 2017 年 2 月 27 日 1480淘宝双 11 数据分析与课程案例-步骤二:Hive 数据分析开发团队:厦门大学数据库联系人:林子雨老师 z:归厦门大学数据库所有,用于商业用途;,其他本文介绍大数据课程实验案例“淘宝双 11 数据分析与”的第二个步骤,Hive数据分析。在实践本步骤之前,请先完成该实验案例的第一个步骤大数据案例本地数据集上传到数据仓库Hive。这里假设你已经完成了前面的第一个步骤。淘宝双 11 数据分析与课程案例-步骤二:Hive 数据分析所需知识储备数据仓库.OK 概念及其基本原理、972 语句、数据库查询分析训练技能数据仓库.OK 基本操作、创建数据库和表、使
2、用 972 语句进行查询分析任务 启动.GJUUV 和.OK 创建数据库和表 简单查询分析 查询条数统计分析 关键字条件查询分析 根据用户行为分析 用户实时查询分析一、操作 .OK 2OT 系统(本采用NGJUUV 用户名登录系统),然后,打开一个终端(可以按快捷键)ZXR RZ :)。本中,Hadoop 的安装目录是“/usr/local/hadoop”,Hive 的安装目录是“/usr/local/hive”。因为需要借助于 保存Hive 的元数据,所以,请首先启动 数据库,请在终端中输入下面命令:1.由于Hive 是基于Hadoop 的数据仓库,使用 HiveQL 语言撰写的查询语句,最
3、终都会被Hive 自动成 MapReduce 任务由Hadoop 去具体执行,因此,需要启动Hadoop,然后再启动Hive。请执行下面命令启动Hadoop(如果你已经启动了Hadoop 就不用再次启动了):1. cd /usr/local/hadoop2. ./sbin/start-dfs.sh然后,执行jps 命令看一下当前运行的进程:1. jpshttp:/blog/1364-2/javascript:void(0);http:/blog/1364-2/j avascript:void(0);http:/blog/1364-2/javascript:void(0);http:/blog/
4、1364-2/j avascript:void(0);S 命令S 命令servicestart# 可以在Linux 的任何目录下执行该命令如果出现下面这些进程,说明Hadoop 启动成功了。下面,继续执行下面命令启动进入Hive:1. cd /usr/local/hive2. ./bin/hive/启动Hivehttp:/blog/1364-2/javascript:void(0);http:/blog/1364-2/j avascript:void(0);http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/j avascript:vo
5、id(0);S 命令3765 NodeManager3639 ResourceManager3800 Jps3261 DataNode3134 NameNode3471 SecondaryNameNodeS 命令通过上述过程,就完成了 、Hadoop 和Hive 三者的启动。启动成功以后,就进入了“hive”命令提示符状态,可以输入类似 SQL 语句的HiveQL 语句。然后,在“hive”命令提示符状态下执行下面命令:1.2. hive show tables; - 显示数据库中所有表。3. hive show create table user_log; - 查看user_log 表的各种
6、属性;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:OKCREATE EXTERNAL TABLE user_log(user_id,item_id,cat_id,merchant_id,brand_id,hive use db; - 使用db 数据库FSUTZNF YZXOTM FJG_F YZXOTM FGIZOUTF FGMKEXGTMKF FMKTJKXF FVXUOTIKF YZXOTM )533+4: K ZU S JHRGH 4U IXKGZK JH YK
7、XERUM 85= ,583: 9+8*+ GVGINK NGJUUV NOK YKXJK RG_ 2G_9OSVRK9KX*K =/:. 9+8*+6856+8:/+9 LOKRJ JKROS # YKXOGROGZOUT LUXSGZ # 9:58+* 9 /46;:,583: GVGINK NGJUUV SGVXKJ :KZ/TVZ,UXSGZ 5;:6;:,583:可以执行下面命令查看表的简单结构:1. hive desc user_log;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:vo
8、id(0);执行结果如下:OKuser_id.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat LOCATIONhdfs:/localhost:9000/db/dataset/user_log TBLPROPERTIES (numFiles=1, totalSize=4729522,transient_lastDdlTime=1487902650)Time taken: 0.084 seconds, Fetched: 28 row(s)二、简单查询分析先测试一下简单的指令:1. hive select brand_id from us
9、er_log limit 10; - 查看日志前 10个交易日志的商品品牌item_id cat_id merchant_id brand_idmonthstringdaystringaction age_range genderprovincestringTime taken: 0.029 seconds, Fetched: 11 row(s)hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:OK 5476547661095476547654765476547654766
10、300如果要查出每位用户商品时的多种信息,输出语句格式为 select 列 1,列2,.,列n from 表名;比如现在查询前 20 个交易日志中商品时的时间和商品的种类1. hive select month,day,cat_id from user_log limit 20;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:OK1111128011111280111111811111128011111280111112801111128011111280以简化操作的难度
11、,以下可以举个例子:有时在表中查询可以利用嵌套语句,如果列名太复杂可以设置该列的别名, 1. hive select ul.at, ul.cifrom (select action as at, cat_id as ci from user_log) as ul limit 20;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:OK0128001280011812128001280012800128001280012800962这里简单的做个讲解,GIZOUT GY GZ
12、 IGZEOJ GY IO 就是把GIZOUT 设置别名GZ IGZEOJ 设置别名 IO,,853 的括号里的内容也设置了别名R,这样调用时用R GZ R IO 可以简化代码。三、查询条数统计分析经过简单的查询后同样也可以在YKRKIZ 后加入的条件对表进行查询 下 面可以用函数来查找想要的内容。(1)用聚合函数 count()计算出表内有多少条行数据1. hive select count(*) from user_log; - 用聚合函数 count()计算出表内有多少条行数据hive http:/blog/1364-2/javascript:void(0);http:/blog/136
13、4-2/javascript:void(0);执行结果如下:1.WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future vers. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.2.Query ID = hadoop_20170224103108_d6361e99-e76a-43e6-94b5-3fb0397e3ca63.Total jobs = 14.L
14、aunching Job 1 out of 15.Number of reduce tasks determined at compile time: 16.In order to change the average load for a reducer (in bytes):7. set hive.exec.reducers.bytes.per.reducer=8.In order to limit theum number of reducers:9. set hive.exec.reducers.max=10. In order to set a constant number of
15、reducers:11. set mapreduce.job.redu=12.13. 2017-02-24 10:31:10,085 Stage-1 map = 100%,reduce = 100%14. Ended Job = job_local792612260_000115. MapReduce Jobs Launched:16. Stage-Stage-1:HDFS Read: 954982 HDFS Write: 0 SUCS17. Total MapReduce CPU Time Spent: 0 msec18. OK19. 1000020. Time taken: 1.585 s
16、econds, Fetched: 1 row(s)可以看到,得出的结果为OK 下的那个数字 54925330((2)在函数加上distinct,查出uid 不重复的数据有多少条下面继续执行操作:1. hive select count(distinct user_id) from user_log; - 在函数内部加上distinct,查出user_id 不重复的数据有多少条hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:http:/blog/1364-2/javascr
17、ipt:void(0);http:/blog/1364-2/j avascript:void(0);S 命令Job running in-pros (local Hadoop)=84/4- .OK UT 38 OY JKVXKIGZKJ OT .OK GTJ SG_ TUZ HK GGORGHRK OT ZNK LZXK KXY )UTYOJKX YOTM G JOLLKXKTZ KKIZOUT KTMOTK O K YVGXQ ZK UX YOTM .OK XKRKGYKY 7KX_ /* # NGJUUVE E LJ H G KJ L LH L:UZGR PUHY # 2GTINOTM 0
18、UH UZ UL 4SHKX UL XKJIK ZGYQY JKZKXSOTKJ GZ IUSVORK ZOSK /T UXJKX ZU INGTMK ZNK GKXGMK RUGJ LUX G XKJIKX OT H_ZKY YKZ NOK KKI XKJIKXY H_ZKY VKX XKJIKX#TSHKX$/T UXJKX ZU ROSOZ ZNKS TSHKX UL XKJIKXY YKZ NOK KKI XKJIKXY SG#TSHKX$/T UXJKX ZU YKZ G IUTYZGTZ TSHKX UL XKJIKXY YKZ SGVXKJIK PUH XKJ#TSHKX$0UH
19、 XTTOTM OT VXUY RUIGR .GJUUV 9ZGMK SGV #XKJIK # (3)查询不重复的数据有多少条(为了排除客户刷单情况) *1. hive select count(*) from (select user_id,item_id,cat_id,merchant_id,brand_id,month,day,action from user_log group by user_id,item_id,cat_id,merchant_id,brand_id,month,day,action having count(*)=1)a;hive http:/blog/1364-
20、2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:Ended Job = job_local1198900757_0002 MapReduce Jobs Launched:Stage-Stage-1:HDFS Read: 1901772 HDFS Write: 0 SUCS Total MapReduce CPU Time Spent: 0 msecOK 358Time taken: 1.283 seconds, Fetched: 1 row(s)=84/4- .OK UT 38 OY JKVXKIGZKJ OT
21、.OK GTJ SG_ TUZ HK GGORGHRK OT ZNK LZXK KXY )UTYOJKX YOTM G JOLLKXKTZ KKIZOUT KTMOTK O K YVGXQ ZK UX YOTM .OK XKRKGYKY 7KX_ /* # NGJUUVE E K I H L LI :UZGR PUHY # 2GTINOTM 0UH UZ UL 4SHKX UL XKJIK ZGYQY TUZ YVKIOLOKJ +YZOSGZKJ LXUS OTVZ JGZG YOK /T UXJKX ZU INGTMK ZNK GKXGMK RUGJ LUX G XKJIKX OT H_Z
22、KY YKZ NOK KKI XKJIKXY H_ZKY VKX XKJIKX#TSHKX$/T UXJKX ZU ROSOZ ZNKS TSHKX UL XKJIKXY YKZ NOK KKI XKJIKXY SG#TSHKX$/T UXJKX ZU YKZ G IUTYZGTZ TSHKX UL XKJIKXY YKZ SGVXKJIK PUH XKJ#TSHKX$0UH XTTOTM OT VXUY RUIGR .GJUUV 9ZGMK SGV #XKJIK # +TJKJ 0UH # PUHERUIGR E 2GTINOTM 0UH UZ UL 4SHKX UL XKJIK ZGYQY
23、 JKZKXSOTKJ GZ IUSVORK ZOSK /T UXJKX ZU INGTMK ZNK GKXGMK RUGJ LUX G XKJIKX OTH_ZKY YKZ NOK KKI XKJIKXY H_ZKY VKX XKJIKX#TSHKX$/T UXJKX ZU ROSOZ ZNKS TSHKX UL XKJIKXY YKZ NOK KKI XKJIKXY SG#TSHKX$/T UXJKX ZU YKZ G IUTYZGTZ TSHKX UL XKJIKXY YKZ SGVXKJIK PUH XKJ#TSHKX$0UH XTTOTM OT VXUY RUIGR .GJUUV 9
24、ZGMK SGV # XKJIK# +TJKJ 0UH # PUHERUIGR E 3GV8KJIK 0UHY 2GTINKJ 9ZGMK 9ZGMK.*,9 8KGJ .*,9 =XOZK 9;)9可以看出,排除掉重复信息以后,只有 4754 条。注意:嵌套语句最好取别名,就是上面的a,否则很容易出现如下错误.四关键字条件查询分析1.以关键字的存在区间为条件的查询使用where 可以缩小查询分析的范围和精确度,下面用实例来测试一下。(1)查询双 11 那天有多少人了商品1. hive select count(distinct user_id) from user_log where act
25、ion=2;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:Stage-Stage-2:HDFS Read: 2848562 HDFS Write: 0 SUCS Total MapReduce CPU Time Spent: 0 msecOK 4754Time taken: 2.478 seconds, Fetched: 1 row(s)=84/4- .OK UT 38 OY JKVXKIGZKJ OT .OK GTJ SG_ TUZ HK GGORGHRK OT ZN
26、K LZXK KXY )UTYOJKX YOTM G JOLLKXKTZ KKIZOUT KTMOTK O K YVGXQ ZK UX YOTM .OK XKRKGYKY 7KX_ /* # NGJUUVE E K KJ GL J L :UZGR PUHY # 2GTINOTM 0UH UZ UL 4SHKX UL XKJIK ZGYQY JKZKXSOTKJ GZ IUSVORK ZOSK /T UXJKX ZU INGTMK ZNK GKXGMK RUGJ LUX G XKJIKX OT H_ZKY YKZ NOK KKI XKJIKXY H_ZKY VKX XKJIKX#TSHKX$/T
27、 UXJKX ZU ROSOZ ZNKS TSHKX UL XKJIKXY YKZ NOK KKI XKJIKXY SG#TSHKX$/T UXJKX ZU YKZ G IUTYZGTZ TSHKX UL XKJIKXY YKZ SGVXKJIK PUH XKJ#TSHKX$0UH XTTOTM OT VXUY RUIGR .GJUUV 9ZGMK SGV #XKJIK # 2.关键字赋予给定值为条件,对其他数据进行分析取给定时间和给定品牌,求当天的此品牌商品的数量1. hive select count(*) from user_log where action=2 and brand_id
28、=2661;hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);执行结果如下:WARNING: Hive-on-MR is deprecated in Hive 2 and may not be available in the future vers. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.Ended Job = job_local195145371
29、9_0005 MapReduce Jobs Launched:Stage-Stage-1:HDFS Read: 3795352 HDFS Write: 0 SUCS Total MapReduce CPU Time Spent: 0 msecOK 358Time taken: 1.231 seconds, Fetched: 1 row(s)7KX_ /* # NGJUUVE E IG J L J J L HKLJH :UZGR PUHY # 2GTINOTM 0UH UZ UL 4SHKX UL XKJIK ZGYQY JKZKXSOTKJ GZ IUSVORK ZOSK /T UXJKX Z
30、U INGTMK ZNK GKXGMK RUGJ LUX G XKJIKX OTH_ZKY YKZ NOK KKI XKJIKXY H_ZKY VKX XKJIKX#TSHKX$/T UXJKX ZU ROSOZ ZNKS TSHKX UL XKJIKXY YKZ NOK KKI XKJIKXY SG#TSHKX$/T UXJKX ZU YKZ G IUTYZGTZ TSHKX UL XKJIKXY YKZ SGVXKJIK PUH XKJ#TSHKX$0UH XTTOTM OT VXUY RUIGR .GJUUV 9ZGMK SGV # XKJIK# +TJKJ 0UH # PUHERUIG
31、R E 3GV8KJIK 0UHY 2GTINKJ 五根据用户行为分析从现在开始,只给出查询语句,将不再给出执行结果。1查询一件商品在某天的比例或浏览比例1. hive select count(distinct user_id) from user_log where action=2; - 查询有多少用户在双 11了商品hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);1. hive select count(distinct user_id) from user_log; - 查询有多少用户在双 11 点击了该店hive http:/blog/1364-2/javascript:void(0);http:/blog/1364-2/javascript:void(0);Stage-Stage-1:HDFS Read: 4742142 HDFS Write: 0 SUCS Total MapReduce CP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中历史教学中历史思维方法与历史纪录片教学应用研究课题报告教学研究课题报告
- 澜起科技-市场前景及投资研究报告:内存互连芯片需求价值双增Retimer芯片CXL未来可期
- 第十二章医疗照射的辐射防护
- 2026年台州市中心医院(台州学院附属医院)安保岗位招聘备考题库及答案详解1套
- 2026年浙江大学化工学院吴可君研究员课题组招聘备考题库及参考答案详解
- 2026年瓯海区人民医院公开招聘B超、麻醉科医师备考题库及完整答案详解
- 2025年东明县职业中等专业学校引进高层次急需紧缺人才备考题库有完整答案详解
- 2026年省农垦集团所属企业高层次人才招聘备考题库及一套完整答案详解
- 2026年池州东至县医疗保障局所属事业单位公开选调工作人员备考题库及1套参考答案详解
- 2026年南安市卫生事业单位赴福建医科大学公开招聘编制内卫生类工作人员备考题库附答案详解
- 2025至2030中国考试系统行业市场发展现状分析及发展趋势与投资前景报告
- 胶质瘤的围手术期护理
- CJ/T 312-2009建筑排水管道系统噪声测试方法
- 大棚施工合同(7篇)
- DB31/ 807.1-2014重点单位保安服务要求第1部分:基本要求
- 工程造价审计服务投标方案(技术方案)
- 采购石粉合同协议
- 工控网管理制度
- 驾考试题100道及答案
- 液氧泄露应急预案演练方案
- 测量年终工作总结
评论
0/150
提交评论