hadoop 实现序列化

前言

序列化想必大家都很熟悉了,对象在进行网络传输过程中,需要序列化之后才能传输到客户端,或者客户端的数据序列化之后送达到服务端

序列化的标准解释如下:

序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输

对应的反序列化为序列化的逆向过程

反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象

为什么要序列化

一般来说,程序动态创建出来的“活的” 对象只生存在内存里,一旦服务停机或断电就没了。而且“活”对象只能存活于本地进程,不能发送到网络上其他的服务器或者进程中使用。 然而通过序列化之后,则可以存储“活的”对象,从而进行网络传输,提供给其他进程或机器使用。

为什么不使用Java序列化

在Java中,创建一个对象如果希望这个对象是序列化的对象,只需要实现Serializable接口即可,但Java的序列化在Hadoop看来,是一个重量级序列化框架,一个对象被序列化后,会附带很多额外的信息(各种校验信息,Header,继承体系等),从而不便于在网络中高效传输。所以,Hadoop自己开发了一套序列化机制,只需要对象实现Writable接口,重写里面的两个方法。

Hadoop序列化特点

    猜你喜欢

    转载自blog.csdn.net/zhangcongyi420/article/details/122270728