hadoop入门(九)Mapreduce中的简单排序(手机流量排序)

本文介绍了如何使用Hadoop MapReduce处理日志数据,实现手机流量信息的汇总与排序。通过自定义Bean和Mapper,根据总流量进行倒序排序,最后在Reducer中调整输出格式,使得结果按总流量降序排列。
摘要由CSDN通过智能技术生成

需求:

对日志数据中的上下行流量信息汇总,并输出按照总流量倒序排序的结果

数据如下:电话号-上行流量-下行流量(下面是模拟的数据)

13823434356 20  30
15844021203 30  40
18688788797 40  50
15844939284 50  60
17646566767 90  70
18688988989 10  20
11385768543 40  44

分析:

基本思路:实现自定义的bean来封装流量信息,并将bean作为map输出的key来传输

MR程序在处理数据的过程中会对数据排序(map输出的kv对传输到reduce之前,会排序),排序的依据是map输出的key

所以,我们如果要实现自己需要的排序规则,则可以考虑将排序因素放到key中,让key实现接口:WritableComparable

然后重写key的compareTo方法。

最后在reduce中把传入的maperr处理好的数据的key,value进行调换,这样输出结果就是手机号在前,其他的在后了。

实现:

1、eclipes程序,准备环境(略):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值