手机号流量统计---Mapreduce项目分析
文档显示:
每行依次是 ~手机号~上行流量~下行流量
需求分析:
需要统计各自的手机号,及上行、下行、总流量
具体做法:
1.定义map输入输出类型
通常情况下map的输入的key-value就是longwritable,text
我们知道Map读取的过程为:读一行返回一个key-value对,每调用一行就执行一次map方法。而输出value应该是每行的上行流量和下行流量以及总流量,我们想到了对象。输出value可以为bean类----在mr程序中,可以使用自定义的类型作为mr的输出数据类型,但是前提是实现hadoop的writable序列化机制
2.创建bean类---
2.1定义属性(注意:long类型)
自行通过setget / lambok+data注解 使用属性
2.2构造方法
2.3重写序列化write和反序列化方法
序列化
反序列化(注意:先序列化的先反序列化)
3.map阶段
应该是手机号作为key,上行流量+下行流量作为value
小技巧:
1.如果line中间数据有丢失,可以正着+倒着配合获取字段)
2.构造函数参数和中间设置要机灵点儿哦
3.1map完成
3.2.但是由于每次调用map方法都需要new,这样会增大垃圾回收量,所以优化提前new出所需对象,整个过程只需要重新set。
4.reduce阶段
Map的输出为reduce的输入,设置统计参数
5.job阶段
Job相当于是模板方法,大量代码都是一致的。所以我们可以找到之前的mapreduce的方法进行 黏贴修改代码、重新导包 即可。
6.重写toString 避免输出文件中是对象不便于观察
接下来我们可以在本地跑一下,拍桌子散伙!
-------补作业了!
手机号流量统计---Mapreduce项目分析的更多相关文章
- Mapreduce的序列化和流量统计程序开发
一.Hadoop数据序列化的数据类型 Java数据类型 => Hadoop数据类型 int IntWritable float FloatWritable long LongWritable d ...
- Hadoop_17_MapRduce_案例2_实现用户手机流量统计(ReduceTask并行度控制)
需求:1.统计每一个用户(手机号)所耗费的总上行流量.下行流量,总流量 1.数据如下:保存为.dat文件(因为以\t切分数据,文件格式必须合适) 1363157985066 13726230503 0 ...
- iOS 网络流量统计
在开发中,有时候需要获取流量统计信息.研究发现:通过函数getifaddrs来得到系统网络接口的信息,网络接口的信息,包含在if_data字段中, 有很多信息, 但我现在只关心ifi_ibytes, ...
- ios 使用可视化工具charles转换pcap文件,进行流量统计(通过tcpdump抓包)
环境准备:使用mac电脑,下载xcode,Charles 连接iPhone手机,打开xcode-window-devices-查看设备UDID 打开终端:rvictl –s 设备号 ,查看虚拟端口号 ...
- 安卓App流量统计
http://keepcleargas.bitbucket.org/2013/10/12/android-App-Traffic.html 安卓App流量统计 12 OCT 2013 android流 ...
- Android流量统计TrafficStats类
对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析. android.n ...
- 利用iptables实现基于端口的网络流量统计
如何统计某个应用的网络流量(包括网络流入量和网络流出量)问题,可以转换成如何基于端口号进行网络流量统计的问题.大部分网络应用程序都是传输层及以上的协议,因此基于端口号(tcp, udp)统计网络流量基 ...
- Android中进行流量统计
// ---------------------流量统计-------------------------------- try { PackageManager pm = getPackageMan ...
- 网站流量统计系统 phpMyVisites
phpMyVisites是一个网站流量统计系统,它能够提供非常详细的统计报告和高级图形报表.phpMyVisites不是一个Apache log分析工具,它建有自己的log.它的特点包括: 安装部署: ...
随机推荐
- JQ初级
一.认识jQuery 1.什么是jQuery jQuery是对原生JavaScript二次封装的工具函数集合 jQuery是一个简洁高效的且功能丰富的JavaScript工具库 2.jQuery的优势 ...
- Insert Into select 与 Select Into 哪个更快?
在平常数据库操作的时候,我们有时候会遇到表之间数据复制的情况,可能会用到INSERT INTO SELECT 或者 SELECT INTO : 那么二者语法上有什么区别?性能上又如何呢? 围绕着这两个 ...
- 深入理解JVM(2)——运行时数据区
1.运行时数据区 1.1.程序计数器 记录当前线程正在执行的字节码指令的地址,如果正在执行的是 Native 方法,这个计数器值则为空. 1.2.虚拟机栈 每个 Java 方法在执行的同时会创建一个栈 ...
- (转)Spring事务管理详解
背景:之前一直在学习数据库中的相关事务,而忽略了spring中的事务配置,在阿里面试时候基本是惨败,这里做一个总结. 可能是最漂亮的Spring事务管理详解 https://github.com/Sn ...
- Android sdk platform,sdk tools,sdk Build tools,sdk platform tools 的关系
1. sdk platform 简单理解为系统版本 最新级别: 28:Android 9 27:Android 8.1 26:Android 8.0 25:Android 7.1 24:Android ...
- jdbc增删改查进行封装
jdbc封装 1 dao (代码分层) com.aaa.dao 存放dao相关的类型 例如 StudentDAOImpl 处理 数据库的链接 存取数据 com.aaa.servlet 存放servle ...
- LFYZ-OJ ID: 1019 位数问题
位数问题 问题描述 在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值. INPUT 输入一个数N(1<=N<=1000),输入以0结 ...
- django - 总结 - cnblog 知识点
1.图像预览 点击头像------>点击input img和input重合; img在label,input-->display:none $("#avatar").c ...
- SpringBoot系列: RestTemplate 快速入门
====================================相关的文章====================================SpringBoot系列: 与Spring R ...
- 数据结构Java实现04---树及其相关操作
首先什么是树结构? 树是一种描述非线性层次关系的数据结构,树是n个数据结点的集合,这些集结点包含一个根节点,根节点下有着互相不交叉的子集合,这些子集合便是根节点的子树. 树的特点 在一个树结构中,有且 ...