MapReduce-流量统计求和-排序-FlowBean编写
需求二: 上行流量倒序排序(递减排序)
分析,以需求一的输出数据作为排序的输入数据,自定义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编写相关推荐
- MapReduce-流量统计求和-排序-Mapper和Reducer编写
定义FlowMapper package cn.learn.mapreduce_sort;import org.apache.hadoop.io.LongWritable; import org.ap ...
- MapReduce TopK统计加排序
Hadoop技术内幕中指出Top K算法有两步,一是统计词频,二是找出词频最高的前K个词.在网上找了很多MapReduce的Top K案例,这些案例都只有排序功能,所以自己写了个案例. 这个案例分两个 ...
- MapReduce-流量统计求和-排序-JobMain代码和测试运行
程序main函数入口 package cn.learn.mapreduce_sort;import cn.learn.mapreduce_flowcount.FlowCountReducer; imp ...
- 使用Mapreduce案例编写用于统计文本中单词出现的次数的案例、mapreduce本地运行等,Combiner使用及其相关的知识,流量统计案例和流量总和以及流量排序案例,自定义Partitioner
工程结构: 在整个案例过程中,代码如下: WordCountMapper的代码如下: package cn.toto.bigdata.mr.wc; import java.io.IOException ...
- MapReduce-流量统计求和-FlowBean和Mapper代码编写
流量统计 需求一: 统计求和 统计每个手机号的上行流量总和,下行流量总和,上行总流量之和,下行总流量之和分析:以手机号码作为key值,上行流量,下行流量,上行总流量,下行总流量四个字段作为value值 ...
- MapReduce编程规范及实践(流量统计)
一.MapReduce编码规范 Map阶段2个步骤 设置 InputFormat 类, 将数据切分为 Key-Value(K1和V1) 对, 输入到第二步 自定义 Map 逻辑, 将第一步的结果转换成 ...
- 【MapReduce】实战:流量统计(完整Java代码)
[MapReduce]系列学习笔记: 第一部分:基本介绍 第二部分:MapReduce的编程 第三部分:MapReduce的分区 第四部分:MaoReduce的排序 第五部分:MapReduce实战: ...
- Mapreduce的序列化和流量统计程序开发
一.Hadoop数据序列化的数据类型 Java数据类型 => Hadoop数据类型 int IntWritable float FloatWritable long LongWritable d ...
- Hadoop学习_mapreduce提交方式+实现简单流量统计程序(有注释)+shuffle
注:以下内容来源于互联用,用于个人读书笔记. mapreduce提交方式 MR程序的几种提交运行模式: 本地模型运行 1/在windows的eclipse里面直接运行main方法,就会将job提交给本 ...
最新文章
- Scrapy框架--使用cookie
- [Leetcode] Copy list with random pointer 对带有任意指针的链表深度拷贝
- python中二进制文件_Python学习基础篇 -6: Python中的文件操作
- 实验二matlab数值,实验二MATLAB数值计算
- php 批量修改mysql 数据表,字段 字符集编码
- bootstrap之glyphicon字体图标
- C语言:用二维字符数组的每行存储键盘输入的字符串,将这些字符串按字典顺序升序排序,输出排序后的结果。
- Windows Bat脚本实现定时重启应用程序
- 小学奥林匹克计算机怎么学,小学奥林匹克数学教程1--6年级全套
- java bean vo_关于JavaBean和vo的解释
- JS如何删除节点和所有子节点
- 春风得意的 jQuery
- matlab仿真单关节机器人,用MATLAB玩转机器人--第六章 用MATLAB玩转单关节机器人
- MAC地址(广播、组播、单播、全球、本地)
- python怎么测试函数_快学Python:如何测试函数与类
- Received status code 502 from server: Bad Gateway
- 本机不装Oracle,远程访问服务器上Oracle教程
- JAVA基础--QR_Code二维码生成
- Python问题解决7:爬虫报错SyntaxError: Non-UTF-8 code starting with ‘\xbb‘ in file
- C语言实现对BMP图像信息的读取、灰白处理和白平衡处理
热门文章
- EntityFramework(EF)贪婪加载和延迟加载的选择和使用
- Reginal2011_Chengdu_I Isabella's Message
- 【定时任务】quartz表达式Cron Expression解析
- OAuth 2.0初学者指南
- 「Luogu1552」[APIO2012]派遣
- Maven的构建配置文件(Build Profiles)
- 打开Delphi 10.1 berlin提示脚本错误的解决方法
- Linux 查找指定文件并删除
- cp 提示 overwrite 问题
- keepalived基础及使用DR模型构建一个real_server