暴风雨中的 kryo 连载 [英] kryo serialization over storm

查看:37
本文介绍了暴风雨中的 kryo 连载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要通过 apache Storm(部署在远程集群中)序列化复杂对象 (opencv:Mat).任何人都可以向我推荐一个很好的自定义 kryo 序列化教程或提出有关如何执行此操作的解决方案吗?提前致谢!

I need to serialize complex object (opencv:Mat) over apache storm (deployed in remote cluster). Can anyone suggest me a good tutorial custom kryo serialization or propose a solution on how to do this? Thanks in advance!

推荐答案

我已经创建了一个 bean

I have created a bean

     public class DataBean{

    Mat imageMatrix;
    int id;
    public DataBean(){

    }
    public DataBean(int id, Mat matrix) {
    setId(id);
    setImageMatrix(matrix);
}
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public Mat getImageMatrix() {
    return imageMatrix;
}
public void setImageMatrix(Mat matrix)
{
    this.imageMatrix=matrix;
}

}

然后我按如下方式创建了序列化程序:

Then I have created the serializer as follow:

      public class DataBeankryo extends Serializer<DataBean> implements Serializable{

    @Override
    public DataBean read(Kryo arg0, Input arg1, Class<DataBean> arg2) {
            DataBean bean=new DataBean();
            bean.setId(arg1.readInt());
            bean.setImageMatrix(arg0.readObject(arg1,org.opencv.core.Mat.class));
            return bean;
    }

    @Override
    public void write(Kryo arg0,  Output output, DataBean bean) {
            //arg0.register(org.opencv.core.Mat.class);
            output.writeInt(bean.getId());
            arg0.writeObject(output,bean.getImageMatrix(),arg0.getSerializer(org.opencv.core.Mat.class));
            //arg0.writeClassAndObject(output, bean);
            output.close();        }}

希望能帮到你!

这篇关于暴风雨中的 kryo 连载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆