Apache flink 在Flink Mini Cluster(1.11)和AvroKryoSerializerUtils上运行流不起作用

Apache flink 在Flink Mini Cluster(1.11)和AvroKryoSerializerUtils上运行流不起作用,apache-flink,Apache Flink,在集成测试中,在flink mini集群上测试流时遇到了一个问题。 该流映射生成的Avro SpecificRecord Pojo类(Java) 流作业是用Scala编写的 flink运行时正在崩溃,因为它无法实例化org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils 以下是堆栈跟踪: stack: java.lang.ClassCastException: class org.apache.flink.formats.avro.

在集成测试中,在flink mini集群上测试流时遇到了一个问题。 该流映射生成的Avro SpecificRecord Pojo类(Java)

流作业是用Scala编写的

flink运行时正在崩溃,因为它无法实例化
org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils

以下是堆栈跟踪:

stack: java.lang.ClassCastException: class org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils
java.lang.RuntimeException: Could not instantiate org.apache.flink.formats.avro.utils.AvroKryoSerializerUtils.
    at org.apache.flink.api.java.typeutils.AvroUtils.getAvroUtils(AvroUtils.java:53)
    at org.apache.flink.api.java.typeutils.runtime.kryo.KryoSerializer.buildKryoRegistrations(KryoSerializer.java:572)
我认为问题在于Flink无法序列化Avro Pojo类,因为该类中有多个嵌套的Avro Pojo类

我试图为所有嵌套的Pojo类类型添加所有类型信息,但仍然遇到相同的问题

所以现在我想知道是否有人让Flink作业使用生成的带有嵌套AVROPOJO类的AVROPOJO类。所有类都继承类型SpecificRecord,并从avro模式生成

是否需要编写某种特殊的序列化程序?对于这样一个在Scala或Java中处理多个嵌套Pojo类的序列化程序,是否有任何文档或示例

或者这是一个完全不同的问题


非常感谢您的帮助

如果
flink avro
不在类路径中,可能会出现问题。如果您使用的是Avro,我希望捕获更多细微错误。

我通过在流程函数中进行解析来实现这一点

我必须将一个字符串解析为json,然后解析为SpecificRecord类的一个特定字段的记录类,该字段应最终位于DataSink中


json的解析现在在另一个ProcessFunton中实现,现在可以工作了。之前,我将映射中的解析直接应用于数据流。

谢谢您的评论。这是我首先检查的。请看我的回答,我提到了什么问题。