首页 > 其他分享 >006 用户行为PV&UV统计数据

006 用户行为PV&UV统计数据

时间:2023-04-03 21:36:27浏览次数:44  
标签:info PV string timestamp UV jar value 006 external


一、PV统计(页面访问量)


(1) 基本概念
通常是衡量一个网络新闻频道或网站甚至一条网络新闻的主要指标。网页浏览数是评价网站流量最常用的指标之一,简称为PV。监测网站PV的变化趋势和分析其变化原因是很多站长定期要做的工作。 Page Views中的Page一般是指普通的html网页,也包含php、jsp等动态产生的html内容。来自浏览器的一次html内容请求会被看作一个PV,逐渐累计成为PV总数。

(2) 计算方法
用户每1次对网站中的每个网页访问均被记录1次。用户对同一页面的多次访问,访问量累计。

(3) 统计分析


--1.创建数据库


create database jfyun;
use jfyun;




--2. 创建用户访问记录表,先预先创建好分区表


create external table data_collect(
accessDate    string,
accessHour   int,
requestMethod   string,
referUrl   string,
requestProtocal   string,
returnStatus   string,
requestUrl   string,
referDomain   string,
userOrigin   string,
originWord   string,
browser   string,
browserVersion   string,
operateSystem   string,
requestIp   string,
ipNumber   int,
userProvince   string,
screenSize   string,
screenColor   string,
pageTitle   string,
siteType   string,
userFlag   string,
visitFlag   string,
sFlag   string,
timeOnPage int
)partitioned by (access_day string)
row format delimited
fields terminated by '\t'
location '/user/hadoop/external/jfpc/output';



--3. 为表创建分区(先创建分区,然后再使用分区即往分区中加载数据


alter table data_collect add partition(access_day='20150705' );
alter table data_collect add partition(access_day='20150706' );




--4. 执行mapreduce程序存放数据/加载数据到分区表


hadoop jar jfyun.jar com.yun.job.AccessLogEnhanceImportHDFS external/jfpc/input/20150705/130/clickdata-2015070500.log external/jfpc/output/access_day=20150705
hadoop jar jfyun.jar com.yun.job.AccessLogEnhanceImportHDFS external/jfpc/input/20150705/131/clickdata-2015070500.log external/jfpc/output/access_day=20150705
hadoop jar jfyun.jar com.yun.job.AccessLogEnhanceImportHDFS external/jfpc/input/20150705/130/clickdata-2015070501.log external/jfpc/output/access_day=20150705
hadoop jar jfyun.jar com.yun.job.AccessLogEnhanceImportHDFS external/jfpc/input/20150705/131/clickdata-2015070501.log external/jfpc/output/access_day=20150705

hadoop jar jfyun.jar com.yun.job.AccessLogEnhanceImportHDFS external/jfpc/input/20150706 external/jfpc/output/access_day=20150706






--5. 显示表的分区


show partitions data_collect;


--6. 根据分区条件查看分区数据


select * from data_collect where access_day='20150705';
select * from data_collect where access_day='20150706';




--7. 通过hive分析pv数据


--7.1. pv 按天统计
select substr (accessdate,1,8) ,count(1) from data_collect  where access_day='20150706' group by substr(accessdate,1,8);
--7.2. pv 按小时统计,插入到指定的表
select accesshour,count (1) staCount from data_collect where access_day='20150706' group by accesshour;
--7.3 每天每个省份PV
select substr (accessdate,1,8),userprovince,count(1) from data_collect where access_day='20150706' group by substr (accessdate,1,8),userprovince
--7.4 每天每个省份 每个小时统计
select substr(accessdate,1,8),userprovince,accesshour,count(1) from data_collect where access_day='20150706' group by substr(accessdate,1,8),userprovince,accesshour



二、UV统计(独立访客)



(1) 基本概念


独立IP:是指独立用户/独立访客。指访问某个站点或点击某条新闻的不同IP地址的人数

(2) 计算方法
在同一天的00:00-24:00内,独立IP只记录第一次进入网站的具有独立IP的访问者,可以通过设置cookie,记录第一次访问设置新用户,后续为老用户

(3) 统计分析


项目需求:


(1)用户访问电商网站,通过js插码的方式收集用户行为日志,然后通过mapreduce程序把用户日志统计到hbase中,按照UV表进行计算。


(2)入库后的数据要进行统计分析


(3)用户日志格式(模拟的数据)


"06/Jul/2015:00:01:04 +0800" "GET" "http%3A//jf.10086.cn/m/" "HTTP/1.1" "200" "http://jf.10086.cn/m/subject/100000000000009_0.html" "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; Lenovo A3800-d Build/LenovoA3800-d) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025438 Mobile Safari/533.1 MicroMessenger/6.2.0.70_r1180778.561 NetType/cmnet Language/zh_CN" "10.139.198.176" "480x854" "24" "%u5927%u7C7B%u5217%u8868%u9875_%u4E2D%u56FD%u79FB%u52A8%u79EF%u5206%u5546%u57CE" "0" "3037487029517069460000" "3037487029517069460000" "1" "75"
"06/Jul/2015:01:01:04 +0800" "GET" "http%3A//jf.10086.cn/portal/ware/web/SearchWareAction%3Faction%3DsearchWareInfo%26pager.offset%3D144" "HTTP/1.1" "200" "http://jf.10086.cn/portal/ware/web/SearchWareAction?action=searchWareInfo&pager.offset=156" "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-CN; HUAWEI MT2-L01 Build/HuaweiMT2-L01) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 UCBrowser/10.5.2.598 U3/0.8.0 Mobile Safari/534.30" "223.73.104.224" "720x1208" "32" "%u641C%u7D22_%u4E2D%u56FD%u79FB%u52A8%u79EF%u5206%u5546%u57CE" "0" "3046252153674140570000" "3046252153674140570000" "1" "2699"
"06/Jul/2015:02:01:04 +0800" "GET" "" "HTTP/1.1" "200" "http://jf.10086.cn/" "Mozilla/5.0 (Linux; Android 4.4.4; vivo Y13L Build/KTU84P) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/33.0.0.0 Mobile Safari/537.36 baiduboxapp/5.1 (Baidu; P1 4.4.4)" "10.154.210.240" "480x855" "32" "%u9996%u9875_%u4E2D%u56FD%u79FB%u52A8%u79EF%u5206%u5546%u57CE" "0" "3098781670304015290000" "3098781670304015290000" "0" "831"
"06/Jul/2015:03:01:07 +0800" "GET" "http%3A//wx.10086.cn/wechat-website/wechatwebsite/AccumulatePoints" "HTTP/1.1" "200" "http://jf.10086.cn/m/" "Mozilla/5.0 (Linux; U; Android 4.4.2; zh-cn; Lenovo A3800-d Build/LenovoA3800-d) AppleWebKit/533.1 (KHTML, like Gecko)Version/4.0 MQQBrowser/5.4 TBS/025438 Mobile Safari/533.1 MicroMessenger/6.2.0.70_r1180778.561 NetType/cmnet Language/zh_CN" "10.139.198.176" "480x854" "24" "%u9996%u9875_%u4E2D%u56FD%u79FB%u52A8%u79EF%u5206%u5546%u57CE" "0" "3037487029517069460000" "3037487029517069460000" "1" "135"



(4)数据来源,可以参考下面的网站


http://jf.10086.cn/analyzeVesopera.gif?screenSize=1366x768&screenColor=24&pageTitle=%u9996%u9875_%u4E2D%u56FD%u79FB%u52A8%u79EF%u5206%u5546%u57CE&referrerPage=&siteType=0&uid=20523849176242946000&sid=56080848979763680000&sflag=1&countlog=1443006061700&onloadTotalTime=135




技术方案:


(1) 编写Mapreduce,读取每行数据然后保存HBase


(2) 让Hive操作HBase表的数据


(3) Hive统计分析HBase表的数据,分析用户访客行为




1、创建表


create 'UserVisitInfo' , {NAME => 'info'}




2、导入hbase


hadoop jar jfyun.jar com.yun.job.AccessLogImportHBase external/jfpc/input/20150705/130/clickdata-2015070500.log
hadoop jar jfyun.jar com.yun.job.AccessLogImportHBase external/jfpc/input/20150705/131/clickdata-2015070500.log

hadoop jar jfyun.jar com.yun.job.AccessLogImportHBase external/jfpc/input/20150705/130/clickdata-2015070501.log
hadoop jar jfyun.jar com.yun.job.AccessLogImportHBase external/jfpc/input/20150705/131/clickdata-2015070501.log

hadoop jar jfyun.jar com.yun.job.AccessLogImportHBase external/jfpc/input/20150706




3、查看hbase中的数据


3.1 全表查看


scan 'UserVisitInfo'



3.2 根据rowkey查看


hbase(main):012:0> get 'UserVisitInfo','20150706_3037487029517069460000'
COLUMN                          CELL                                                                                    
 info:FirstAccessUrl            timestamp=1443000064923, value=/m/subject/100000000000009_0.html                        
 info:browser                   timestamp=1443000064923, value=Safari                                                   
 info:browserVersion            timestamp=1443000064923, value=533.1                                                    
 info:firstAccessTime           timestamp=1443000064923, value=20150706000104                                           
 info:operateSystem             timestamp=1443000064923, value=linux                                                    
 info:recentAccessTime          timestamp=1443000065001, value=20150706030107                                           
 info:recentAccessUrl           timestamp=1443000065001, value=/m/                                                      
 info:screenColor               timestamp=1443000064923, value=24                                                       
 info:screenSize                timestamp=1443000064923, value=480x854                                                  
 info:siteType                  timestamp=1443000064923, value=0                                                        
 info:userFlag                  timestamp=1443000064923, value=3037487029517069460000                                   
 info:userProvince              timestamp=1443000064923, value=999                                                      
 info:userVisitId               timestamp=1443000064923, value=20150706_3037487029517069460000                          
 info:visitCount                timestamp=1443000065001, value=2                                                        
 info:visitDay                  timestamp=1443000064923, value=20150706                                                 
 info:visitFlag                 timestamp=1443000064923, value=3037487029517069460000                                   
 info:visitHour                 timestamp=1443000064923, value=0                                                        
 info:visitIp                   timestamp=1443000064923, value=10.139.198.176                                           
 info:visitKeepTime             timestamp=1443000065001, value=10803


 

4、统计hive分析hbase表的数据

 4.1 创建HBase表,将数据添加到HBase表中


 UserVisitInfo


 4.2 创建HBase表映射的Hive表


 (1) 创建表


CREATE external TABLE User_Visit_Info
(
 userVisitId string,  
 FirstAccessUrl string,
 browserVersion string,                                                  
 firstAccessTime string ,                                           
 operateSystem string,      
 recentAccessTime string,                                          
 recentAccessUrl string,                                                   
 screenColor string,                                                   
 screenSize string,                                                 
 siteType string,    
 userFlag string,                                  
 userProvince string,                                              
 visitCount string,                                                     
 visitDay string,                                               
 visitFlag string,                                  
 visitHour string, 
 visitIp string,                                          
 visitKeepTime string
)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,
info:FirstAccessUrl,info:browserVersion,info:firstAccessTime,info:operateSystem,
info:recentAccessTime,info:recentAccessUrl,info:screenColor,info:screenSize,info:siteType,
info:userFlag,info:userProvince,info:visitCount,info:visitDay,info:visitFlag,info:visitHour,
info:visitIp,info:visitKeepTime
")
TBLPROPERTIES ("hbase.table.name" = "UserVisitInfo");




 4.3 使用Hive统计分析




 



标签:info,PV,string,timestamp,UV,jar,value,006,external
From: https://blog.51cto.com/u_14361901/6167555

相关文章

  • 1006-HBase操作实战(JAVA API模式)
    一、准备阶段开发环境:hadoop: hadoop -2.4.0hbase: hbase -0.94.11-securityeclipse:JunoServiceRelease2二、创建 hbasedemo项目1、通过Eclipse创建一个新Java工程2、右击项目根目录,选择“Propertiesà>JavaBuildPathà>Libraryà> Add Ext......
  • S5PV210开发 -- 串口驱动开发
    上篇文章讲的UART,更多的是硬件相关的知识。接下来进入正题了,串口驱动开发。一、阅读原理图我们用的是UART2串口,则接收管脚XuRXD2复用GPA1_0,发送管脚XuTXD2复用GPA1_1二、S5PV210UART (1)通用异步接收器和发送器的概述 (p-853)S5PV210中的通用异步接收器和发送器(UART)提供四......
  • S5PV210开发 -- UART 详解
    上一篇文章系统的讲了一下通信的分类,包括并行通信,串行通信。串行通信的分类,包括同步通信,异步通信。这篇文章我们主要讲一下UART 串口编程,我们并不陌生。之前讲过RS485通信,参看:UNIX再学习--RS485串口编程再者,参看:日常生活小技巧--UART回环测试一、基本概念 参看:UART--维......
  • S5PV210开发 -- 通信
    参看:串行通信基本原理参看:【51单片机】(手把手教你)串口通信-基础篇一、基本概念首先,我们先看一下什么是 通信(communication)随着计算机网络化和微积分级分布式应用系统的发展,通信的功能越来越重要。通信是指计算机与外界的信息传输,既包括计算机与计算机之间的传输,也包括计算机与外部......
  • S5PV210开发 -- Linux dd命令
    昨天群里有人询问,为什么破坏BootLoader破坏不掉。出现错误:dd:writing'/dev/mtdblock0':Operationnotpermitted我说需要插着SD卡才可以。(这个也不对,不插SD卡也可以,那这个错误还是没有搞清楚)然后我们来看一下它操作指令:  busyboxddif=/dev/zeroof=/dev/mmcblk0bs=512......
  • POJ 2773 Happy 2006 二分+容斥原理(二进制枚举或dfs)
    Happy2006TimeLimit: 3000MS MemoryLimit: 65536KTotalSubmissions: 14003 Accepted: 4946DescriptionTwopositiveintegersaresaidtoberelativelyprimetoeachotheriftheGreatCommonDivisor(GCD)is1.Forinstance,1,3,5,7,9...areallrelativel......
  • IPv网段分法
    IPv网段分法IPv4网段是指一组IP地址范围,通常用一个起始地址和一个结束地址来表示。IPv4网段的分配基于子网掩码,子网掩码决定了网络地址和主机地址之间的分界线。IPv6网段也是一组IP地址范围,但与IPv4不同的是,IPv6使用前缀长度来表示网段大小。前缀长度是指IPv6地址中......
  • k8s教程(Volume篇)-PVC详解
    文章目录01引言02PVC详解2.1参数配置2.1.1资源请求(Resources)2.1.2访问模式(AccessModes)2.1.3存储卷模式(VolumeModes)2.1.4PV选择条件(Selector)2.1.5存储类别(Class)03Pod使用PVC3.1举例3.1.1举例:默认模式(Filesystem)3.1.2举例:存储卷模式为块设备(Block)04文末01......
  • OpenWrt 软路由 IPV6 配置 DDNS
    一、申请 dynv6 账号1、去官网注册一个账号,不过人机验证那块需要"梯子"才能注册成功FreedynamicDNSforIPv62、注册成功后,创建一个Domain,这是我已经创建好的3、输入一个你自己的域名,后缀选择dynv6.net 4、创建好后,点到这个域名下面,切换到instructions获取密码,后面需要......
  • 记录一下最近做的从PVE到ESXi的虚拟机迁移操作
    PVE版本是ProxmoxVirtualEnvironment7.1-4ESXi版本是6.5待迁移的虚拟机是Debian111,先在PVE的虚拟机中进行BackupCompression选的ZSTD,Mode选的是Stop2,备份完成之后,SSH到PVE主机进行操作sshroot@PVE_HOST_IPPVE内置的备份可以生成VMA文件(ProxmoxVirtu......