MapReduce 学习2 ---- 序列化学习
hadoop序列化的特点:
序列化格式特点:
1.紧凑:高效使用存储空间。
2.快速:读写数据的额外开销小
3.可扩展:可透明地读取老格式的数据
4.互操作:支持多语言的交互
hadoop序列化与java序列化的最主要的区别是:在复杂类型的对象下,hadoop序列化不用像java对象类一样传输多层的父子关系,需要哪个属性就传输哪个属性值,大大的减少网络传输的开销。
hadoop序列化的作用:
1.序列化的在分布式的环境的作用:进程之间的通信,节点通过网络之间的
2.hadoop节点之间数据传输
节点1:(序列化二进制数据) ------->(二进制流消息) 节点2:(反序列化二进制数据)
MR中key,value都是需要实现WritableComparable接口的对象,这样的对象才是hadoop序列化的对象。
package com.feihao;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.WritableComparable;
public class StudentWritable implements WritableComparable<StudentWritable> {
private String name;
private int age;
public void write(DataOutput out) throws IOException {
out.writeUTF(this.name);
out.writeInt(this.age);
}
public void readFields(DataInput in) throws IOException {
this.name = in.readUTF();
this.age = in.readInt();
}
public int compareTo(StudentWritable o) {
return 0;
}
}

浙公网安备 33010602011771号