簡體   English   中英

在flink(scala)中使用kryo在某種類型上注冊protobuf序列化程序時出現問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM