Hadoop之自定义序列化类型

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();
        
    }
}

你可能感兴趣的:(Hadoop之自定义序列化类型)