大数据学习四之MapReduce 模板编写UV程序
在写程序之前先了解一些相关定义:
- 几个网站基本指标:
(1)PV(Page View):页面点击(浏览)量,每刷新一次页面就会被计算一次。
(2)UV(Unique Vistor):独立访客数,记录独立访客访问次数,同一个访客多次访问算一次。
(3)VV(Visit View):访客数,记录所有访客访问次数,打开网站到关闭网站为一次访问,同一访客多次访问会被记录多次。
(4)IP(IP数):使用不同IP地址的用户访问网站的数量,同一IP无论访问了几个页面,独立IP数均为1。 - MapReduce执行过程
-》input:默认从hdfs读取数据:TextInputFormat -》mapper
-》输入:input的输出
-》map:方法,一行调用一次map方法
-》设计输出,构造输出的keyvalue
-》对每一行内容进行分割
-》输出
-》shuffle:分区,分组,排序
-》reduce:每一条keyvalue调用一次reduce方法
-》output
输出:默认将reduce的输出写入hdfs
需求:
我们将分析一个网站访问数据文件,统计每个城市的UV数
思路:
想要统计uv数,我们只需要统计有效数据中guid(唯一用户id)数就好了,下面确定每一步的输入输出值:
input:hdfs上的文件
map
key:城市id Text
value:guid Text
shuffle
key:城市id
value:{uuid1,uuid1,uuid3……}
reduce
key:城市id
value:不同uuid的个数(uv)
output
key:城市id
value:uv数
代码实现如下(使用Maven管理项目):
package com.lmt.uv;
import org.apache.commons.lang.StringUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import

本文介绍如何使用MapReduce模板编写程序,以分析网站日志并统计每个城市的独立访客数(UV)。首先定义了PV、UV、VV和IP等网站指标,接着详细阐述了MapReduce的执行过程,包括输入输出值的确定。在Map阶段,键为城市ID,值为用户ID;在Reduce阶段,键仍为城市ID,值为不同用户ID的计数。通过Maven管理项目,将程序打包为uv.jar,并上传到Linux服务器进行数据处理。最后,将数据文件上传到HDFS,运行jar包,得到了各个城市的UV统计结果。
最低0.47元/天 解锁文章
933

被折叠的 条评论
为什么被折叠?



