logo资料库

大数据综合案例-网站日志分析.docx

第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
资料共31页,剩余部分请下载后查看
一、项目背景与数据情况
1.1 项目来源
1.2 数据情况 
二、关键指标KPI
2.1 浏览量PV
2.2 注册用户数
2.3 IP数
2.4 跳出率
2.5 板块热度排行榜
三、开发步骤
3.0 需要用到的技术
3.1 上传日志文件至HDFS
3.2 数据清洗
3.3 统计分析
3.4 分析结果导入MySQL
3.5 提供视图工具
四、表结构设计
4.1 MySQL表结构设计
4.2 HBase表结构设计
一、数据情况分析
1.1 数据情况回顾
1.2 要清理的数据
二、数据清洗过程
2.1 定期上传日志至HDFS
2.2 编写MapReduce程序清理日志
2.3 定期清理日志至HDFS
2.4 定时任务测试
一、借助Hive进行统计
1.1 准备工作:建立分区表
1.2 使用HQL统计关键指标
二、使用Sqoop导入到MySQL
2.1 准备工作:在MySQL中创建结果汇总表
2.2 导入操作:通过export命令
三、改写Linux定时任务
3.1 加入分区、统计与导出操作
3.2 分离日期获取操作
3.3 初始化任务操作
四、小结
第一部分:项目介绍 一、项目背景与数据情况 1.1 项目来源 本次要实践的数据日志来源于国内某技术学习论坛,该论坛由某培训机构主办,汇聚了 众多技术学习者,每天都有人发帖、回帖,如图 1 所示: 图 1 项目来源网站-技术学习论坛 本次实践的目的就在于通过对该技术论坛的 apache common 日志进行分析,计算该 论坛的一些关键指标,供运营者进行决策时参考。 PS:开发该系统的目的是为了获取一些业务相关的指标,这些指标在第三方工 具中无法获得的; 1.2 数据情况 该论坛数据有两部分: (1)历史数据约 56GB,统计到 2012-05-29。这也说明,在 2012-05-29 之前,日 志文件都在一个文件里边,采用了追加写入的方式。
(2)自 2013-05-30 起,每天生成一个数据文件,约 150MB 左右。这也说明,从 2013-05-30 之后,日志文件不再是在一个文件里边。 图 2 展示了该日志数据的记录格式,其中每行记录有 5 部分组成:访问者 IP、访问时 间、访问资源、访问状态(HTTP 状态码)、本次访问流量。 图 2 日志记录数据格式 二、关键指标 KPI 2.1 浏览量 PV (1)定义:页面浏览量即为 PV(Page View),是指所有用户浏览页面的总和,一个 独立用户每打开一个页面就被记录 1 次。 (2)分析:网站总浏览量,可以考核用户对于网站的兴趣,就像收视率对于电视剧 一样。但是对于网站运营者来说,更重要的是,每个栏目下的浏览量。 计算公式:记录计数,从日志中获取访问次数,又可以细分为各个栏目下的访问次数。
2.2 注册用户数 该 论 坛 的 用 户 注 册 页 面 为 member.php , 而 当 用 户 点 击 注 册 时 请 求 的 又 是 member.php?mod=register 的 url。 计算公式:对访问 member.php?mod=register 的 url,计数。 2.3 IP 数 (1)定义:一天之内,访问网站的不同独立 IP 个数加和。其中同一 IP 无论访问了 几个页面,独立 IP 数均为 1。 (2)分析:这是我们最熟悉的一个概念,无论同一个 IP 上有多少电脑,或者其他用户, 从某种程度上来说,独立 IP 的多少,是衡量网站推广活动好坏最直接的数据。
计算公式:对不同的访问者 ip,计数 2.4 跳出率 (1)定义:只浏览了一个页面便离开了网站的访问次数占总的访问次数的百分比,即 只浏览了一个页面的访问次数 / 全部的访问次数汇总。 (2)分析:跳出率是非常重要的访客黏性指标,它显示了访客对网站的兴趣程度:跳 出率越低说明流量质量越好,访客对网站的内容越感兴趣,这些访客越可能是网站的有效用 户、忠实用户。 PS:该指标也可以衡量网络营销的效果,指出有多少访客被网络营销吸引到宣 传产品页或网站上之后,又流失掉了,可以说就是煮熟的鸭子飞了。比如,网站在 某媒体上打广告推广,分析从这个推广来源进入的访客指标,其跳出率可以反映出 选择这个媒体是否合适,广告语的撰写是否优秀,以及网站入口页的设计是否用户 体验良好。 计算公式:①统计一天内只出现一条记录的 ip,称为跳出数;②跳出数/PV;
2.5 板块热度排行榜 (1)定义:版块的访问情况排行。 (2)分析:巩固热点版块成绩,加强冷清版块建设。同时对学科建设也有影响。 计算公式:按访问次数统计排序; 三、开发步骤 3.0 需要用到的技术 (1)Linux Shell 编程 (2)HDFS、MapReduce (3)HBase、Hive、Sqoop 框架 3.1 上传日志文件至 HDFS 把日志数据上传到 HDFS 中进行处理,可以分为以下几种情况:
(1)如果是日志服务器数据较小、压力较小,可以直接使用 shell 命令把数据上传到 HDFS 中; (2)如果是日志服务器数据较大、压力较大,使用 NFS 在另一台服务器上上传数据; (3)如果日志服务器非常多、数据量大,使用 flume 进行数据处理; 3.2 数据清洗 使用 MapReduce 对 HDFS 中的原始数据进行清洗,以便后续进行统计分析; 3.3 统计分析 使用 Hive 对清洗后的数据进行统计分析; 3.4 分析结果导入 MySQL 使用 Sqoop 把 Hive 产生的统计结果导出到 mysql 中; 3.5 提供视图工具 提供视图工具供用户使用,指标查询 mysql、明细则查询 Hbase;
四、表结构设计 4.1 MySQL 表结构设计 这里使用 MySQL 存储关键指标的统计分析结果。 4.2 HBase 表结构设计 这里使用 HBase 存储明细日志,能够利用 ip、时间查询。 后面,我们就开始具体的实战了,本篇作为介绍就到此为止!
第二部分:数据清洗 一、数据情况分析 1.1 数据情况回顾 该论坛数据有两部分: (1)历史数据约 56GB,统计到 2012-05-29。这也说明,在 2012-05-29 之前,日 志文件都在一个文件里边,采用了追加写入的方式。 (2)自 2013-05-30 起,每天生成一个数据文件,约 150MB 左右。这也说明,从 2013-05-30 之后,日志文件不再是在一个文件里边。 图 1 展示了该日志数据的记录格式,其中每行记录有 5 部分组成:访问者 IP、访问时 间、访问资源、访问状态(HTTP 状态码)、本次访问流量。 图 1 日志记录数据格式 本次使用数据来自于两个 2013 年的日志文件,分别为 access_2013_05_30.log 与 access_2013_05_31.log,下载地址为:http://pan.baidu.com/s/1pJE7XR9 1.2 要清理的数据 (1)根据前一篇的关键指标的分析,我们所要统计分析的均不涉及到访问状态(HTTP 状态码)以及本次访问的流量,于是我们首先可以将这两项记录清理掉;
分享到:
收藏