2017-01-22 2 views
1

아파치 스톰 (원격 클러스터에 배포 됨)보다 복잡한 객체 (opencv : Mat)를 직렬화해야합니다. 누구든지 나에게 좋은 튜토리얼 맞춤 kryo 직렬화를 제안하거나 이것을 수행하는 방법에 대한 해결책을 제안 할 수 있습니까? 미리 감사드립니다.kryo serialization over storm

답변

0

이 문제를 해결했습니다.

+0

저는 또한 OpenCV Matrix를 Kryo와 직렬화하는 방법을 찾고 있습니다. Apache Storm이 아니라 Akka Remoting에 관한 것입니다. 당신의 시리얼 라이저는 어떻게 생겼습니까? – Toaditoad

0

필요하다면 내가 그럼 난 다음과 시리얼을 만든

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

}을 만든 물어 주시기 바랍니다 :

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

을 나는이 당신을 도울 수 있기를 바랍니다!

관련 문제