1.需要实现Hadoop的序列化接口Writable接口,当没有reduce阶段的时候,不需要实现Writable接口
2.需要有控参构造器
3.需要序列化的属性
4.重写write和readFileds方法
5.需要提供set 、 get方法
6.在有需要查看具体的数据的需求的时候,还需要提供toString方法
注意:write() 和 readFileds() 写入和读入的字段顺序要一致!
当对象的属性为引用数据类型,避免数据为null!
示例如下
package org.apache.test;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import org.apache.hadoop.io.Writable;
public class TestBean implements Writable {
long filed1;
long filed2;
long filed3;
public TestBean() {
super();
}
public long getFiled1() {
return filed1;
}
public void setFiled1(long filed1) {
this.filed1 = filed1;
}
public long getFiled2() {
return filed2;
}
public void setFiled2(long filed2) {
this.filed2 = filed2;
}
public long getFiled3() {
return filed3;
}
public void setFiled3(long filed3) {
this.filed3 = filed3;
}
@Override
public void write(DataOutput out) throws IOException {
out.writeLong(filed1);
out.writeLong(filed2);
out.writeLong(filed3);
}
@Override
public void readFields(DataInput in) throws IOException {
filed1 = in.readLong();
filed2 = in.readLong();
filed3 = in.readLong();
}
}
网友评论