首页 > TAG信息列表 > sumFlow
大数据之-Hadoop3.x_MapReduce_二次排序案例---大数据之hadoop3.x工作笔记0116
前面我们已经利用MapReduce实现了,自定义的全排序,那么如果我们 想实现二次排序怎么做,先看看需求, 我们之前做的程序,第一次实现的是,把手机号一样的,上行流量,下行流量,总流量合计出来, 上一节我们用的全排序,是把所有手机号的,总流量倒序排了一下输出了,然后 这次,我们要二MapReduce WritableComparable自定义排序案例实操(全排序&区内排序)
一、全排序 1. 需求 根据序列化案例产生的结果再次对总流量进行倒序排序。 (链接:https://blog.csdn.net/mengxianglong123/article/details/119341747) 2. 操作步骤 (1)FlowBean对象在原先基础上增加了比较功能 package com.atguigu.mapreduce.writablecompable; import org自定义bean对象实现序列化接口(Writable)
具体实现bean对象序列化步骤如下7步。 (1)必须实现Writable接口 (2)反序列化时,需要反射调用空参构造函数,所以必须有空参构造 public FlowBean() { super(); } (3)重写序列化方法 @Override public void write(DataOutput out) throws IOException { out.writeL序列化
Hadoop的key和value的传递序列化需要涉及两个重要的接口Writable和WritableComparable: WritableComparable比Writable多了一个compareTo方法,用来判断key是否唯一或者说是不是相同。 Hadoop为Key的数据类型必须实现WritableComparable,而Value的数据类型只需要实现Writable即可,能3.Hadoop序列化
3.Hadoop序列化 3.1概述 序列化和反序列化 序列化就是把内存中的对象,转换成字节序列,以便于储存到磁盘和网络传输 反序列化就是将收到的字节序列或者是磁盘的持久化数据,转换成内存中的对象 序列化特点 紧凑:高效使用存储空间 快速:读写数据的额外开支较小 可拓展:随着通信协议的升