Hadoop序列化与反序列化具体实践

首先创建两个类

两个类的代码

Student类:

java 复制代码
import org.apache.hadoop.io.Writable;

import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;

public class Student implements Writable {
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    public String name;
    public int age;

    @Override
    public void write(DataOutput dataOutput) throws IOException {
        dataOutput.writeUTF(name);
        dataOutput.writeInt(age);
    }

    @Override
    public void readFields(DataInput dataInput) throws IOException {
        name = dataInput.readUTF();
        age = dataInput.readInt();
    }
}

TestStudent类:

java 复制代码
import java.io.*;

public class TestStudent {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        Student student = new Student("小花", 18);

        // hadoop序列化
        DataOutputStream dos = new DataOutputStream(new FileOutputStream("Student_hadoop.txt"));
        student.write(dos);

        // hadoop 反序列化
        DataInputStream dis = new DataInputStream(new FileInputStream("Student_hadoop.txt"));
        Student student1 = new Student();
        student1.readFields(dis);
        System.out.println(student1.name+ " "+student1.age);
    }
}
相关推荐
大大大大晴天18 小时前
Hudi技术内幕:RecordPayload到RecordMerger
大数据
SelectDB1 天前
秒级弹性、最高降本 70%:SelectDB Serverless 如何重塑云数仓资源效率
大数据·后端·云原生
WhoAmI1 天前
MapReduce框架原理解析一:InputFormat
大数据·hadoop
WhoAmI1 天前
MapReduce框架原理解析三:OutputFormat
大数据·hadoop
WhoAmI1 天前
MapReduce框架原理解析二:Shuffle
大数据·hadoop
大大大大晴天2 天前
Hudi技术内幕:Key Generation原理与实践
大数据
得物技术6 天前
从埋点需求到规则资产:Hermes Agent 重构得物数仓工作流
大数据·llm·ai编程
久美子6 天前
AI驱动数仓建设的Harness工程实践——本体建模、知识分层与上下文工程
大数据
大树886 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
大志哥1236 天前
ES和Logstash日志链路系统上线后遭遇切片爆炸(解决)
大数据·elasticsearch