理论教育 Hive实战案例:数据处理与分析

Hive实战案例:数据处理与分析

时间:2023-06-14 理论教育 版权反馈
【摘要】:通过本案例,可以实现IP 访问量统计,版块访问统计等,方便网站改善架构设计。

Hive实战案例:数据处理与分析

数据说明:经过处理后的网站部分数据。数据格式:IP\t 年\t 月\t 日\t 访问版块。通过本案例,可以实现IP 访问量统计,版块访问统计等,方便网站改善架构设计。

一、数据上传

首先在本地/soft 目录下面创建文件demo.txt 用来放日志数据文件,然后在HDFS创建demo 目录,如图6-15 所示:

图6-15 demo 目录创建

最后将本地的日志数据文件上传到HDFS 上,如图6-16 所示:

图6-16 日志数据上传

二、运行Hive

使用hive 数据库,在里面新建一个demo 表:

create table demo( ip String, year int, month int, day int, visit String )

row format delimited fields terminated by '\t' location '/user/demo';

查看demo 表结构,如图6-17 所示:

图6-17 demo 表结构

然后使用select * from demo;语句,可查询demo 里面的数据信息,如图6-18 所示:

图6-18 demo 数据查看

三、分别统计30,31 号总流量

Select count(*)from demo where day=30;

执行结果如图6-19 所示:

图6-19 30 号总流量统计

Select count(*)from demo where day=31;

执行结果如图6-20 所示:

图6-20 31 号总流量统计

四、分别统计30,31 号所有IP 数(去重)

Select distinct ip from demo where day=30;

执行结果如图6-21 所示:

图6-21 30 号IP 数

Select distinct ip from demo where day=31;

执行结果如图6-22 所示:

图6-22 31 号IP 数

五、分别统计30,31 号IP 访问数为1(www.daowen.com)

先新建一个表demo2 用于存放结果(create table demo2(ip String,ipcount int) row format delimited fields terminated by '\t';)

demo2 表结构图如图6-23 所示:

图6-23 demo2 表结构

将查询的结果(在30 号这天每个IP 的访问次数)放入到demo2 中(insert overwrite table demo2 select ip,count(ip) ipcount from demo where day=30 group by ip ;),执行结果如图6-24 所示:

图6-24 demo2 数据插入

查询一下demo2 里面的数据(select * from demo2;),执行结果如图6-25 所示:

图6-25 demo2 数据查询

然后筛选出IP 访问数为1 的IP(select ip,ipcount from demo2 where ipcount=1;),执行结果如图6-26 所示:

图6-26 30 号IP 访问数为1

同理新建一个表demo3 用于存放结果(create table demo3(ip String,ipcount int)row format delimited fields terminated by '\t';),demo3 表结构如图6-27 所示:

图6-27 demo3 表结构

将查询的结果(在31 号这天每个IP 的访问次数)放入到demo3 中(insert overwrite table demo3 select ip,count(ip) ipcount from demo where day=31 group by ip ;),执行结果如图6-28 所示:

图6-28 demo3 数据插入

查询一下demo3 里面的数据(select * from demo3;)执行结果如图6-29 所示:

图6-29 demo3 数据查询

然后筛选出IP 访问数为1 的IP(select ip,ipcount from demo3 where ipcount=1;),执行结果如图6-30 所示:

图6-30 31 号IP 访问数为1

六、分别统计30,31 号IP 访问量最高

查询刚才放入结果的demo2 里面的最大值即可(select ip, ipcount from demo2 order by ipcount desc limit 1;),执行结果如图6-31 所示:

图6-31 30 号IP 访问量最高

查询刚才放入结果的demo3里面的最大值即可(select ip, ipcount from demo3 order by ipcount desc limit 1;),执行结果如图6-32 所示:

图6-32 31 号IP 访问量最高

七、统计板块访问量最高

select visit,count(visit) vcount from demo group by visit order by vcount desc limit 1;

执行结果如图6-33 所示:

图6-33 板块访问量最高

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈