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/

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

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

  1. Hadoop学习笔记—20.网站日志分析项目案例(三)统计分析

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:http://www.cnbl ...

  2. 基于Hadoop部署实践对网站日志分析(大数据分析案例)

    目录 1.项目概述 2.总体设计 2.1 Hadoop插件安装及部署 3.详细实现步骤操作纪要 3.1 hadoop环境准备 3.2 源数据文件准备 3.3 python开发mapreduce脚本 3 ...

  3. hadoop网站日志分析(一)

    Hadoop学习笔记-20.网站日志分析项目案例(一)项目介绍 网站日志分析项目案例(一)项目介绍:当前页面 网站日志分析项目案例(二)数据清洗:http://www.cnblogs.com/edis ...

  4. 走向云计算之Hadoop实际应用网站日志分析

    一.概述 网站日志分析是Hadoop应用的一个方向.那么什么是网站日志呢? 网站日志是记录web服务器接收处理请求以及运行时错误等各种原始信息的以.log结尾文件.通过网站日志可以清楚的得知用户在什么 ...

  5. 阿里云大数据认证——MOOC网站日志分析-课堂笔记

    阿里云Clouder认证 四.MOOC网站日志分析 1. 课程目标 (1) 了解网站日志分析的意义 (2) 了解网站日志如何搜集 (3) 使用编程语言对日志数据进行处理 (4) 使用编MaxCompu ...

  6. Hadoop学习笔记系列文章导航

    一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...

  7. Hadoop学习笔记(1) ——菜鸟入门

     Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分布式系统基础架构,由Apache基金会所开发.用户能够在不了解分布式底层细节的情况下.开发分布式 ...

  8. Hadoop学习笔记(1)

    原文:http://www.cnblogs.com/zjfstudio/p/3859704.html Hadoop学习笔记(1) --菜鸟入门 Hadoop是什么?先问一下百度吧: [百度百科]一个分 ...

  9. Hadoop学习笔记—15.HBase框架学习(基础知识篇)

    Hadoop学习笔记-15.HBase框架学习(基础知识篇) HBase是Apache Hadoop的数据库,能够对大型数据提供随机.实时的读写访问.HBase的目标是存储并处理大型的数据.HBase ...

最新文章

  1. LinFu Dynamic Proxy - LinFu 2.3, LinFu.DynamicProxy 1.031
  2. 原生android 全面屏,谷歌全面屏手机曝光!谷歌pixel2,安卓8.0+骁龙836!
  3. mysql系统自带示例数据库_MySQL系统自带的数据库information schema
  4. AE物体表面跟踪特效合成高级插件:Lockdown for Mac 支持ae2021
  5. 以Jar形式为Web项目提供资源文件(JS、CSS与图片)
  6. textview 背景变形_今日推荐:温州洞头-背景墙框石塑线条
  7. CentOS release5.5 (Final)搭建个人本地网站
  8. React开发中常见问题和 Warning
  9. ndk C++ 编译器的函数名修饰规则
  10. 网络流行简笔画图片大全,互联网图标简笔画
  11. 基于单片机的智能数字电子秤设计
  12. Grounded video description
  13. 【HNOI 2018】寻宝游戏
  14. 人类的智能是如何产生的
  15. react-ative安装expo-linking后运行报错
  16. 过程试图写入的管道不存在
  17. docker 出现错误:no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS
  18. 【Java Web基础】(五)实现新增下拉列表—由用户输入内容(Html+JS)
  19. JDK1.8新特性:lambda表达式
  20. C++之initializer_list,可变参数模板参数展开方法

热门文章

  1. “当前上下文中不存在名称”解决
  2. Mac下使用ABTestingGateway快速搭建灰度网关
  3. python多线程加锁异步处理装饰器
  4. 二分图最大匹配 -- 匈牙利算法
  5. Merge into的使用详解-你Merge了没有
  6. 810D - 如何写学术论文
  7. 12月第四周安全回顾:双节期间微软忙补新漏洞,新Hash将测试
  8. 让VisualSVN Server支持匿名访问
  9. 如何通过HTML标记或JS代码实现跳转返回页面顶部
  10. Android学习笔记之Fragment的两种使用方法