4-网站日志分析案例-日志数据统计分析

简介: 文章目录4-网站日志分析案例-日志数据统计分析一、环境准备与数据导入1.开启hadoop

4-网站日志分析案例-日志数据统计分析

一、环境准备与数据导入

1.开启hadoop

如果在lsn等虚拟环境中开启需要先执行格式化

hadoop namenode -format

启动Hadoop

start-dfs.sh
start-yarn.sh

查看是否启动

jps

2.导入数据

将数据上传到hadoop集群所在节点

创建hdfs目录

hadoop fs -mkdir -p /sx/cleandlog

将数据上传到hdfs上,并重命名为log2015_05_30

hadoop fs -put /home/ubuntu/Code/part-r-00000 /sx/log2015_05_30

二、借助Hive进行统计

1.1 准备工作:建立分区表

HIVE

为了能够借助Hive进行统计分析,首先我们需要将清洗后的数据存入Hive中,那么我们需要先建立一张表。这里我们选择分区表,以日期作为分区的指标,建表语句如下:(这里关键之处就在于确定映射的HDFS位置,我这里是/project/techbbs/cleaned即清洗后的数据存放的位置)

hive>CREATE EXTERNAL TABLE logtable (ip string, atime string, url string) PARTITIONED BY (logdate string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LOCATION '/sx/cleandlog';

建立了分区表之后,就需要增加一个分区,增加分区的语句如下:(这里主要针对20150530这一天的日志进行分区)

hive>ALTER TABLE logtable ADD PARTITION(logdate='2015_05_30') LOCATION '/sx/cleandlog/2015_05_30'; 
hive>LOAD DATA INPATH '/sx/log2015_05_30' INTO TABLE logtable PARTITION (logdate ='2015_05_30');

1.2 使用HQL统计关键指标

(1)关键指标之一:PV量

页面浏览量即为PV(Page View),是指所有用户浏览页面的总和,一个独立用户每打开一个页面就被记录1 次。这里,我们只需要统计日志中的记录个数即可,HQL代码如下:

hive>CREATE TABLE logtable_pv_2015_05_30 AS SELECT COUNT(1) AS PV FROM logtable WHERE logdate='2015_05_30';
select * from logtable_pv_2015_05_30;


(2)关键指标之二:注册用户数


该论坛的用户注册页面为member.php,而当用户点击注册时请求的又是member.php?mod=register的url。因此,这里我们只需要统计出日志中访问的URL是member.php?mod=register的即可,HQL代码如下:


hive>CREATE TABLE logtable_reguser_2015_05_30 AS SELECT COUNT(1) AS REGUSER FROM logtable WHERE logdate='2015_05_30' AND INSTR(url,'member.php?mod=register')>0;  
select * from logtable_reguser_2015_05_30;


(3)关键指标之三:独立IP数

一天之内,访问网站的不同独立 IP 个数加和。其中同一IP无论访问了几个页面,独立IP 数均为1。因此,这里我们只需要统计日志中处理的独立IP数即可,在SQL中我们可以通过DISTINCT关键字,在HQL中也是通过这个关键字:

hive>CREATE TABLE logtable_ip_2015_05_30 AS SELECT COUNT(DISTINCT ip) AS IP FROM logtable WHERE logdate='2015_05_30';
select * from logtable_ip_2015_05_30 ;



(4)关键指标之四:跳出用户数

只浏览了一个页面便离开了网站的访问次数,即只浏览了一个页面便不再访问的访问次数。这里,我们可以通过用户的IP进行分组,如果分组后的记录数只有一条,那么即为跳出用户。将这些用户的数量相加,就得出了跳出用户数,HQL代码如下:

hive>CREATE TABLE logtable_jumper_2015_05_30 AS SELECT COUNT(1) AS jumper FROM (SELECT COUNT(ip) AS times FROM logtable WHERE logdate='2015_05_30' GROUP BY ip HAVING times=1) e;
select * from logtable_jumper_2015_05_30 ;

PS:跳出率是指只浏览了一个页面便离开了网站的访问次数占总的访问次数的百分比,即只浏览了一个页面的访问次数 / 全部的访问次数汇总。这里,我们可以将这里得出的跳出用户数/PV数即可得到跳出率。



(5)将所有关键指标放入一张汇总表中以便于通过Sqoop导出到MySQL

为了方便通过Sqoop统一导出到MySQL,这里我们借助一张汇总表将刚刚统计到的结果整合起来,通过表连接结合,HQL代码如下:

hive>CREATE TABLE logtable_2015_05_30 AS SELECT '2015_05_30', a.pv, b.reguser, c.ip, d.jumper FROM logtable_pv_2015_05_30 a JOIN logtable_reguser_2015_05_30 b ON 1=1 JOIN logtable_ip_2015_05_30 c ON 1=1 JOIN logtable_jumper_2015_05_30 d ON 1=1;
select * from logtable_2015_05_30 ;
hiv



使用Sqoop导入到MySQL以及可视化展示部分不再介绍,详细可参考

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
10月前
|
SQL 人工智能 监控
SLS Copilot 实践:基于 SLS 灵活构建 LLM 应用的数据基础设施
本文将分享我们在构建 SLS SQL Copilot 过程中的工程实践,展示如何基于阿里云 SLS 打造一套完整的 LLM 应用数据基础设施。
3130 113
|
10月前
|
数据采集 运维 监控
不重启、不重写、不停机:SLS 软删除如何实现真正的“无感数据急救”?
SLS 全新推出的「软删除」功能,以接近索引查询的性能,解决了数据应急删除与脏数据治理的痛点。2 分钟掌握这一数据管理神器。
851 52
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
本文介绍了阿里集团A+流量分析平台的日志查询优化方案,针对万亿级日志数据的写入与查询挑战,提出基于Flink、Paimon和StarRocks的技术架构。通过Paimon存储日志数据,结合StarRocks高效计算能力,实现秒级查询性能。具体包括分桶表设计、数据缓存优化及文件大小控制等措施,解决高并发、大数据量下的查询效率问题。最终,日志查询耗时从分钟级降至秒级,显著提升业务响应速度,并为未来更低存储成本、更高性能及更多业务场景覆盖奠定基础。
|
11月前
|
存储 缓存 Apache
StarRocks+Paimon 落地阿里日志采集:万亿级实时数据秒级查询
A+流量分析平台是阿里集团统一的全域流量数据分析平台,致力于通过埋点、采集、计算构建流量数据闭环,助力业务提升流量转化。面对万亿级日志数据带来的写入与查询挑战,平台采用Flink+Paimon+StarRocks技术方案,实现高吞吐写入与秒级查询,优化存储成本与扩展性,提升日志分析效率。
1450 1
|
10月前
|
监控 安全 搜索推荐
使用EventLog Analyzer进行日志取证分析
EventLog Analyzer助力企业通过集中采集、归档与分析系统日志及syslog,快速构建“数字犯罪现场”,精准追溯安全事件根源。其强大搜索功能可秒级定位入侵时间、人员与路径,生成合规与取证报表,确保日志安全防篡改,大幅提升调查效率,为执法提供有力证据支持。
360 0
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
1657 4
|
11月前
|
存储 关系型数据库 数据库
【赵渝强老师】PostgreSQL数据库的WAL日志与数据写入的过程
PostgreSQL中的WAL(预写日志)是保证数据完整性的关键技术。在数据修改前,系统会先将日志写入WAL,确保宕机时可通过日志恢复数据。它减少了磁盘I/O,提升了性能,并支持手动切换日志文件。WAL文件默认存储在pg_wal目录下,采用16进制命名规则。此外,PostgreSQL提供pg_waldump工具解析日志内容。
996 0
|
11月前
|
数据采集 运维 监控
|
SQL 监控 关系型数据库
MySQL日志分析:binlog、redolog、undolog三大日志的深度探讨。
数据库管理其实和写小说一样,需要规划,需要修订,也需要有能力回滚。理解这些日志的作用与优化,就像把握写作工具的使用与运用,为我们的数据库保驾护航。
937 23