MapReduce案例二:流量统计(序列化操作)

本文介绍了如何在Hadoop MapReduce中处理自定义bean对象,详细解析了实现序列化和反序列化的7个步骤,并通过一个案例展示了如何统计电话号码的上行和下行流量,输出总流量。案例包括Bean、Map、Reduce和Driver代码的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中往往常用的基本序列化类型,不能满足所有需求,比如在hadoop框架内部传递一个bean对象,那么该对象需要实现序列化接口
具体实现对象序列化步骤如下7步:
1、必须实现Writable接口
2、反序列化时,需要反射调用无参构造,所有必须有无参构造
3重新序列化方法
4、重写反序列化方法
5、反序列化的顺序和序列化的顺序安全一致
6、要把结果显示在文件中,需重写toString()方法
7、如果需要将自定义的bean放在key中传输,则还需要实现Comparable接口,因为MapReduce框架中的Shuffle过程要求都key必须能排序

案例:
在这里插入图片描述
将上述表格中电话和上行流量、下行流量输出,并统计总流量,结果如下
在这里插入图片描述
代码:
Bean代码

package cn.kgc.flow;

import org.apache.hadoop.io.Writable;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

/**
 * @author czg
 * date
 * description
 */
public class FlowBean  implements Writab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值