hadoop 序列化和 Java 序列化的区别
Java 序列化的特点:
- 序列化的信息非常详细,包括类信息等,而这决定了Java序列化很占内存和并且并不高效(相对于hadoop序列化)。
- Java 序列化的时候在不断创建对象,对GC回收压力大
Hadoop 序列化的特点:
1. 减少无用信息序列化
2. 序列化对象可重用
3. 自己实现序列化,可以更好控制扩展,例如proto、avro、thrift
压缩
压缩算法一般分为可分割压缩还是不可分割压缩,如果文件要使用在MapReduce上,最好选择可分割压缩。
SequenceFile: 避免海量小文件将namenode打垮,应对小文件进行SequenceFile压缩,压缩方式分为行压缩和块压缩。