需求二: 上行流量倒序排序(递减排序)

分析,以需求一的输出数据作为排序的输入数据,自定义FlowBean,以FlowBean为map输出的key,以手机号作为Map输出的value,因为MapReduce程序会对Map阶段输出的key进行排序

Step 1: 定义FlowBean实现WritableComparable实现比较排序

Java 的 compareTo 方法说明:

compareTo 方法用于将当前对象与方法的参数进行比较。
如果指定的数与参数相等返回 0。
如果指定的数小于参数返回 -1。
如果指定的数大于参数返回 1。

例如: o1.compareTo(o2); 返回正数的话,当前对象(调用 compareTo 方法的对象 o1)要排在比较对象(compareTo 传参对象 o2)后面,返回负数的话,放在前面

package cn.learn.mapreduce_sort;import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableComparable;import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;public class FlowBean implements WritableComparable<FlowBean>{private Integer upFlow;private Integer  downFlow;private Integer upCountFlow;private Integer downCountFlow;public Integer getUpFlow() {return upFlow;}public void setUpFlow(Integer upFlow) {this.upFlow = upFlow;}public Integer getDownFlow() {return downFlow;}public void setDownFlow(Integer downFlow) {this.downFlow = downFlow;}public Integer getUpCountFlow() {return upCountFlow;}public void setUpCountFlow(Integer upCountFlow) {this.upCountFlow = upCountFlow;}public Integer getDownCountFlow() {return downCountFlow;}public void setDownCountFlow(Integer downCountFlow) {this.downCountFlow = downCountFlow;}@Overridepublic String toString() {returnupFlow +"\t" + downFlow +"\t" + upCountFlow +"\t" + downCountFlow;}@Overridepublic void write(DataOutput dataOutput) throws IOException {dataOutput.writeInt(upFlow);dataOutput.writeInt(downFlow);dataOutput.writeInt(upCountFlow);dataOutput.writeInt(downCountFlow);}@Overridepublic void readFields(DataInput dataInput) throws IOException {this.upFlow = dataInput.readInt();this.downFlow = dataInput.readInt();this.upCountFlow = dataInput.readInt();this.downCountFlow = dataInput.readInt();}@Overridepublic int compareTo(FlowBean other) {return  this.getUpFlow().compareTo(other.getUpFlow()) * -1;  //按照上行数据包进行
排序}
}

MapReduce-流量统计求和-排序-FlowBean编写相关推荐

  1. MapReduce-流量统计求和-排序-Mapper和Reducer编写

    定义FlowMapper package cn.learn.mapreduce_sort;import org.apache.hadoop.io.LongWritable; import org.ap ...

  2. MapReduce TopK统计加排序

    Hadoop技术内幕中指出Top K算法有两步,一是统计词频,二是找出词频最高的前K个词.在网上找了很多MapReduce的Top K案例,这些案例都只有排序功能,所以自己写了个案例. 这个案例分两个 ...

  3. MapReduce-流量统计求和-排序-JobMain代码和测试运行

    程序main函数入口 package cn.learn.mapreduce_sort;import cn.learn.mapreduce_flowcount.FlowCountReducer; imp ...

  4. 使用Mapreduce案例编写用于统计文本中单词出现的次数的案例、mapreduce本地运行等,Combiner使用及其相关的知识,流量统计案例和流量总和以及流量排序案例,自定义Partitioner

    工程结构: 在整个案例过程中,代码如下: WordCountMapper的代码如下: package cn.toto.bigdata.mr.wc; import java.io.IOException ...

  5. MapReduce-流量统计求和-FlowBean和Mapper代码编写

    流量统计 需求一: 统计求和 统计每个手机号的上行流量总和,下行流量总和,上行总流量之和,下行总流量之和分析:以手机号码作为key值,上行流量,下行流量,上行总流量,下行总流量四个字段作为value值 ...

  6. MapReduce编程规范及实践(流量统计)

    一.MapReduce编码规范 Map阶段2个步骤 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步 自定义 Map 逻辑, 将第一步的结果转换成 ...

  7. 【MapReduce】实战:流量统计(完整Java代码)

    [MapReduce]系列学习笔记: 第一部分:基本介绍 第二部分:MapReduce的编程 第三部分:MapReduce的分区 第四部分:MaoReduce的排序 第五部分:MapReduce实战: ...

  8. Mapreduce的序列化和流量统计程序开发

    一.Hadoop数据序列化的数据类型 Java数据类型 => Hadoop数据类型 int IntWritable float FloatWritable long LongWritable d ...

  9. Hadoop学习_mapreduce提交方式+实现简单流量统计程序(有注释)+shuffle

    注:以下内容来源于互联用,用于个人读书笔记. mapreduce提交方式 MR程序的几种提交运行模式: 本地模型运行 1/在windows的eclipse里面直接运行main方法,就会将job提交给本 ...

最新文章

  1. Scrapy框架--使用cookie
  2. [Leetcode] Copy list with random pointer 对带有任意指针的链表深度拷贝
  3. python中二进制文件_Python学习基础篇 -6: Python中的文件操作
  4. 实验二matlab数值,实验二MATLAB数值计算
  5. php 批量修改mysql 数据表,字段 字符集编码
  6. bootstrap之glyphicon字体图标
  7. C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果。
  8. Windows Bat脚本实现定时重启应用程序
  9. 小学奥林匹克计算机怎么学,小学奥林匹克数学教程1--6年级全套
  10. java bean vo_关于JavaBean和vo的解释
  11. JS如何删除节点和所有子节点
  12. 春风得意的 jQuery
  13. matlab仿真单关节机器人,用MATLAB玩转机器人--第六章 用MATLAB玩转单关节机器人
  14. MAC地址(广播、组播、单播、全球、本地)
  15. python怎么测试函数_快学Python:如何测试函数与类
  16. Received status code 502 from server: Bad Gateway
  17. 本机不装Oracle,远程访问服务器上Oracle教程
  18. JAVA基础--QR_Code二维码生成
  19. Python问题解决7:爬虫报错SyntaxError: Non-UTF-8 code starting with ‘\xbb‘ in file
  20. C语言实现对BMP图像信息的读取、灰白处理和白平衡处理

热门文章

  1. EntityFramework(EF)贪婪加载和延迟加载的选择和使用
  2. Reginal2011_Chengdu_I Isabella's Message
  3. 【定时任务】quartz表达式Cron Expression解析
  4. OAuth 2.0初学者指南
  5. 「Luogu1552」[APIO2012]派遣
  6. Maven的构建配置文件(Build Profiles)
  7. 打开Delphi 10.1 berlin提示脚本错误的解决方法
  8. Linux 查找指定文件并删除
  9. cp 提示 overwrite 问题
  10. keepalived基础及使用DR模型构建一个real_server