Hadoop学习笔记—20.网站日志分析项目案例(一)项目介绍

网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edisonchou/p/4458219.html 网站日志分析项目案例(三)统计分析:http://www.cnblogs.com/edisonchou/p/4464349.html

一、项目背景与数据情况

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、时间查询。

  后面,我们就开始具体的实战了,本篇作为介绍就到此为止!

作者:周旭龙

出处:http://www.cnblogs.com/edisonchou/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏高性能服务器开发

10 十万在线的WebGame的数据库设计思路

在线人数预估: 在项目设计之前,需要先对运营后的服务器人数做一下预估,预计激活人数300w,活跃人数40w,同时在线10w。而服务器的设计极限则在激活人数50...

1791
来自专栏Astropeak

软件设计---高层设计(一):共性可变性分析和分析矩阵

1171
来自专栏智能大石头

100亿小数据实时计算平台

2017年6月,开始数据分析的职业生涯,作为架构师,建立起一套基于.Net/.Net Core的小数据实时处理计算平台,这里记录学习过程中的点点滴滴!

1652
来自专栏BestSDK

Google发布Nearby Connections API 2.0版本,可拓展本地信息和数据分享

关注过 I/O 2017 开发者大会的网友们,或许还记得 Google 提到过的“情境应用体验”(Contextual App Experiences)。这组 ...

3194
来自专栏程序人生 阅读快乐

Linux性能优化大师

性能调优有时被称为“黑色艺术”,因为有时有效地调整一个系统,要求具有更深层次的知识,且需要了解一个系统的硬件和软件组成,以及系统之间的相互作用。性能优化是针对特...

1761
来自专栏服务端技术杂谈

程序员工作久了基础更重要

工作一段时间会遇到一个瓶颈期,会考虑未来1到2年的发展和方向问题,之前的方式是通过不停的学习新的框架或者解决方案来调整。 比如写服务端代码期间会去学习TDD,D...

30910
来自专栏祝威廉

(课程)基于HBase做Storm 实时计算指标存储

Hi,大家好!我是祝威廉,本来微博也想叫祝威廉的,可惜被人占了,于是改名叫·祝威廉二世。然后总感觉哪里不对。目前在乐视云数据部门里从事实时计算,数据平台、搜索和...

2113
来自专栏腾讯技术工程官方号的专栏

鹅厂上万节点大规模集群的跨城自动迁移(下)

当上百P的数据,上万个节点的集群进行跨城迁移时,如何在有限的带宽下实现自动、高效、稳定地迁移?本文将跟你一一揭晓!

5952
来自专栏IT大咖说

新一代CMDB模型构建指南

摘要 今天我为大家带来的分享主题是新一代CMDB模型的构建指南,主要分为四大部分。 困境:当前CMDB模型面临的普遍困境 很多CMDB建设前期做得风风火火,而后...

5865
来自专栏java一日一条

支撑 Java NIO 与 NodeJS 的底层技术

众所周知在近几个版本的Java中增加了一些对Java NIO、NIO2的支持,与此同时NodeJS技术栈中最为人称道的优势之一就是其高性能IO,那么我们今天要讨...

862

扫码关注云+社区

领取腾讯云代金券