大数据学习四之MapReduce 模板编写UV程序

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

大数据学习四之MapReduce 模板编写UV程序

在写程序之前先了解一些相关定义:

  1. 几个网站基本指标:
    (1)PV(Page View):页面点击(浏览)量,每刷新一次页面就会被计算一次。
    (2)UV(Unique Vistor):独立访客数,记录独立访客访问次数,同一个访客多次访问算一次。
    (3)VV(Visit View):访客数,记录所有访客访问次数,打开网站到关闭网站为一次访问,同一访客多次访问会被记录多次。
    (4)IP(IP数):使用不同IP地址的用户访问网站的数量,同一IP无论访问了几个页面,独立IP数均为1。
  2. 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值