mapreduce序列化描述

本文深入探讨了序列化和反序列化的基本概念,对比了Java序列化机制的不足,详细介绍了Hadoop自定义的轻量级序列化机制特点及其实现步骤。通过阅读本文,你将了解到Hadoop序列化如何实现数据的高效存储和传输。

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

什么是序列化:

序列化
是把内存中的对象,转换成字节序列(或者其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。
反序列化
就是将收到的字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。
为何不使用java的序列化机制:
java的序列化是一个重量级的序列化框架,一个对象被序列化后,会附带二外多的信息(各种校验信息,Header,继承机制),不便于在网络中的高效传输,所以,hadoop自己开发了一套轻量级的序列化机制。
hadoop序列化机制的特点:
紧凑 :高效使用存储空间,
快速:读写数据的额外开销
可扩展:随着通信协议的升级而可以升级
互操作:支持多种语言的交互
当在开发时基本的序列化类型不能满足需要时,那么可以自定义实现序列化的数据类型。
实例化步骤:
1.必须实现Writable接口
2.反序列化时,需要反射调用空参构造方法,所有必须提供空参构造器
3.重写序列化方法
4.重写反序列化方法
5.注意反序列化的顺序和反序列化的顺序完全一致
6.要想把结果显示在文件中,需要重写toString()方法
7.如果需要将自定义的bean放到key中去传输,则需要实现Compable接口,因为MapReduce框架中的Shuffer过程要求对key必须能够排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值