[英]Apache Flink Kryo serializer - ClassNotFoundException
[英]Problem registering protobuf serializer on a certain type with kryo in flink (scala)
我有一個代碼片段如下:
env.getConfig.registerTypeWithKryoSerializer(classOf[EventMeta], classOf[ProtobufSerializer[EventMeta]])
其中EventMeta
是一個案例 class 由 scalaPB 從 proto 消息生成。 我們使用 flink 1.10.1 和 scala 2.11。
我試圖翻譯文檔中的 Java 代碼: env.getConfig.registerTypeWithKryoSerializer(EventMeta.class, ProtobufSerializer.class)
,但編譯器一直告訴我:
overloaded method value registerTypeWithKryoSerializer with alternatives:
[error] (x$1: Class[_],x$2: Class[_ <: com.esotericsoftware.kryo.Serializer[_]])Unit <and>
[error] [T <: com.esotericsoftware.kryo.Serializer[_] with java.io.Serializable](x$1: Class[_], x$2: T)Unit
[error] cannot be applied to (Class[com.here.lanes.laneroadreference.derivation.statefun.state.EventMeta.EventMeta], Class[org.apache.flink.statefun.flink.common.protobuf.ProtobufSerializer[com.here.lanes.laneroadreference.derivation.statefun.state.EventMeta.EventMeta]])
[error] env.getConfig.registerTypeWithKryoSerializer(classOf[EventMeta], classOf[ProtobufSerializer[EventMeta]])
顯然, ProtobufSerializer
並沒有在我們的 flink 版本中擴展Serializer
。 doc 或ProtobufSerializer
是否有錯誤? 我該如何解決?
你要導入這個:
import com.twitter.chill.protobuf.ProtobufSerializer;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.