更新时间:2024-10-23 GMT+08:00

MapReduce统计样例程序开发思路

场景说明

假定用户有某个周末网民网购停留时间的日志文本,基于某些业务要求,要求开发MapReduce应用程序实现如下功能:

  • 统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。
  • 周末两天的日志文件第一列为姓名,第二列为性别,第三列为本次停留时间,单位为分钟,分隔符为“,”。

log1.txt:周六网民停留日志

LiuYang,female,20
YuanJing,male,10
GuoYijun,male,5
CaiXuyu,female,50
Liyuan,male,20
FangBo,female,50
LiuYang,female,20
YuanJing,male,10
GuoYijun,male,50
CaiXuyu,female,50
FangBo,female,60

log2.txt:周日网民停留日志

LiuYang,female,20
YuanJing,male,10
CaiXuyu,female,50
FangBo,female,50
GuoYijun,male,5
CaiXuyu,female,50
Liyuan,male,20
CaiXuyu,female,50
FangBo,female,50
LiuYang,female,20
YuanJing,male,10
FangBo,female,50
GuoYijun,male,50
CaiXuyu,female,50
FangBo,female,60

数据规划

首先需要把原日志文件放置在HDFS系统里。

  1. 在Linux系统上新建两个文本文件,将log1.txt中的内容复制保存到input_data1.txt,将log2.txt中的内容复制保存到input_data2.txt。
  2. 在HDFS上建立一个文件夹“/tmp/input”,并上传input_data1.txt,input_data2.txt到此目录,命令如下:
    1. 登录HDFS客户端。

      cd 客户端安装目录

      source bigdata_env

    2. 在Linux系统HDFS客户端使用命令hdfs dfs -mkdir /tmp/input
    3. 在Linux系统HDFS客户端使用命令hdfs dfs -putlocal_filepath /tmp/input

开发思路

统计日志文件中本周末网购停留总时间超过2个小时的女性网民信息。

主要分为四个部分:

  • 读取原文件数据。
  • 筛选女性网民上网时间数据信息。
  • 汇总每个女性上网总时间。
  • 筛选出停留总时间大于2个小时的女性网民信息。