gpt4 book ai didi

java - Apache Storm 中的自定义序列化

转载 作者:行者123 更新时间:2023-11-30 03:10:30 25 4
gpt4 key购买 nike

我尝试为 Apache Storm Spouts/Bolts 中使用的对象添加自定义序列化器。现在我的代码如下所示:

conf.registerSerialization(MyService.class, MyKryoSerializer.class);

public class MyKryoSerializer extends Serializer<MyService> {

public MyKryoSerializer() {
System.out.println("New MyKryoSerializaer!");
}

@Override
public void write(Kryo kryo, Output output, MyService service) {
System.out.println(72);
}

@Override
public MyService read(Kryo kryo, Input input, Class<MyService> aClass) {
System.out.println(73);
return null;
}

public MyService copy(Kryo kryo, MyService myService) {
System.out.println("MyService!");
return myService;
}
}

public class MyRandomSpout extends BaseRichSpout {

private MyService service;

private SpoutOutputCollector collector;

...

因此,当我尝试在本地集群上启动 Storm 拓扑时,我将在 stdout 中看到 “New MyKryoSerializaer!”,因此调用了构造函数,但写入/读取方法未被调用。有人能告诉我,我做错了什么吗?Storm 是否支持 Skyo 序列化器进行点/ bolt 序列化?

最佳答案

Storm 似乎不支持 Kryo 来序列化 Bolt 或 Spout。请参阅this line它明确尝试使用 Java 序列化进行序列化。

关于java - Apache Storm 中的自定义序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33720259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com