🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 谈谈 Hadoop 序列化和反序列化及自定义 bean 对象实现序列化? 1)序列化和反序列化 序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。 反序列化就是将收到字节序列(或其他数据传输协议)或者是硬盘的持久化数据,转换成内存中的对象。 Java 的序列化是一个重量级序列化框架(Serializable),一个对象被序列化后,会附带很多额外的信息(各种校验信息,header,继承体系等),不便于在网络中高效传输。所以,hadoop 自己开发了一套序列化机制(Writable),精简、高效。 ## Hadoop的sequencefile的格式,并说明下什么是java序列化,如何实现java序列化?   SequenceFile文件是Hadoop用来存储二进制形式的key-value 对而设计的一种平面文件;Hadoop 的HDFS 和MapReduce子框架主要是针对大数据文件来设计的,在小文件的处理上不但效率低下,而且十分消耗磁盘空间(每一个小文件占用一个Block,HDFS 默认block大小为64M)。 解决办法通常是选择一个容器,将这些小文件组织起来统一存储。HDFS提供了两种类型的容器,分别是SequenceFile和MapFile。 SequenceFile的每条记录是可序列化的字符数组。 序列化是指将结构化的对象转化为字节流以便在网络上传输或写入到磁盘进行永久存 储的过程,反序列化是指将字节流转回结构化对象的过程.