我正在尝试整合Kafka和Storm。
我创建了一个spout来读取Kafka消息并将它们作为元组发送出来。
在运行风暴拓扑时,我得到以下异常
Caused by: java.io.NotSerializableException: kafka.javaapi.consumer.ZookeeperConsumerConnector
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[?:1.8.0_45]
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1548) ~[?:1.8.0_45]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1509) ~[?:1.8.0_45]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_45]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_45]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) ~[?:1.8.0_45]
at backtype.storm.utils.Utils.javaSerialize(Utils.java:87) ~[storm-core-0.10.0.jar:0.10.0]
... 2 more
答案 0 :(得分:0)
您应该将spout中的非序列化字段声明为瞬态字段。这些字段应该在您的喷口的开放方法中初始化。