1、需求
统计每个手机号上行流量和、下行流量和、总流量和(上行流量和+下行流量和),并且:将统计结果按照手机号的前缀进行区分,并输出到不同的输出文件中去。
13* ==> ..
15* ==> ..
other ==> ..
其中,access.log数据文件
-
第二个字段:手机号
-
倒数第三个字段:上行流量
-
倒数第二个字段:下行流量
2、分析:逻辑:设计
1、不论是写SQL还是写MR,一般都先把结果的格式先列出来
手机号 上行包总和 下行包总和 上行流量总和 下行流量总和
2、设计思路
-
根据手机号进行分组,然后把该手机号对应的上下行流量加起来
-
Mapper: 把手机号、上行流量、下行流量拆开 把手机号作为key,把Access作为value写出去
-
Reducer形如:(“手机号”,<Access,Access>)
-
自定义分区类(需要继承Partitioner抽象类),并覆写getPartition()方法
3、开发步骤
一、首先将该题的数据源上传至集群
假设文件名为access.log
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./access.log input
数据源文件内容为:
手机号流量统计与MapReduce实践

最低0.47元/天 解锁文章
409

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



