我想在我的风暴拓扑中为 Scala 集合注册序列化程序。为此,我正在使用 twitter chill KryoSerializer。
我正在做的是
1. 创建了一个实现 IKryoDecorator 的装饰器。在装饰方法中,我调用 KryoSerializer.registerAll(k),其中 k 是 Kyro 实例
2。在拓扑配置对象中,我调用 registerDecorator 方法。
import com.twitter.chill.KryoSerializer
import com.esotericsoftware.kryo.Kryo
import backtype.storm.serialization.IKryoDecorator
class KryoDecorator extends IKryoDecorator {
def decorate(k: Kryo) {
KryoSerializer.registerAll(k)
}
}
接着
stormConfig.registerDecorator(classOf[ReflexKryoDecorator])
仍然当我运行拓扑时,我得到异常说明“类未注册:scala.collection.immutable.Map$Map3”
Storm 版本 0.8.2 Chill 版本 0.2.3