风暴中的Kryo序列化 [英] kryo serialization over storm
本文介绍了风暴中的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(); }}
我希望这可以为您提供帮助!
I hope this can help you!
这篇关于风暴中的Kryo序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文