首页 > TAG信息列表 > downFlow
Hadoop核心-MapReduce
通过对HDFS的了解,接下来我们接着来学习hadoop第二个核心MapReduce。 一.概述 *MapReduce是一个分布式计算模型,是用户开发“基于hadoop的数据分析应用”的核心框架。将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个hadoop集群上。 *序列化
Hadoop的key和value的传递序列化需要涉及两个重要的接口Writable和WritableComparable: WritableComparable比Writable多了一个compareTo方法,用来判断key是否唯一或者说是不是相同。 Hadoop为Key的数据类型必须实现WritableComparable,而Value的数据类型只需要实现Writable即可,能6.Partitioner案例
6.Partitioner案例 文件:https://files-cdn.cnblogs.com/files/handsomeplus/phonedata.zip 需求: 将统计结果按照手机归属地不同省份输出到不同文件夹 期望输出数据: 手机号136,137,138,139开头的分别放到4个文件中,其他的放到一个文件中 程序源码 自定义Bean类 import org.apacMapReduce-流量统计求和-排序-FlowBean编写
需求二: 上行流量倒序排序(递减排序) 分析,以需求一的输出数据作为排序的输入数据,自定义FlowBean,以FlowBean为map输出的key,以手机号作为Map输出的value,因为MapReduce程序会对Map阶段输出的key进行排序 Step 1: 定义FlowBean实现WritableComparable实现比较排序 Java 的 compareToHadoop序列化
1、序列化 把内存中的对象转换成字节序列(或其他数据传输协议)以便存储到磁盘和网络传输。 2、反序列化 将字节序列(或其他数据传输协议)或者磁盘的持久化数据转成内存对象 3、Hadoop为什么不使用java的序列化机制 java的序列化是一个重量级序列化框架,一个对象被序列化后,会附带很多mapreduce序列化操作
1. 需求 统计每一个手机号耗费的总上行流量、下行流量、总流量 (1)输入数据 (2)输入数据格式: 7 13560436666 120.196.100.99 1116 954 200 id 手机号码 网络ip 上行流量 下行流量 网络状态码 (3)期望输出数据格式 13560436666 1116 954