使用带有自定义对象数组的数据集时,Flink中的NoSuchMethod异常

时间:2015-05-08 09:18:54

标签: scala maven apache-flink

我遇到了Flink的问题

java.lang.NoSuchMethodError: org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo.getInfoFor(Lorg/apache/flink/api/common/typeinfo/TypeInformation;)Lorg/apache/flink/api/java/typeutils/ObjectArrayTypeInfo;
    at LowLevel.FlinkImplementation.FlinkImplementation$$anon$6.<init>(FlinkImplementation.scala:28)
    at LowLevel.FlinkImplementation.FlinkImplementation.<init>(FlinkImplementation.scala:28)
    at IRLogic.GmqlServer.<init>(GmqlServer.scala:15)
    at it.polimi.App$.main(App.scala:20)
    at it.polimi.App.main(App.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ...

问题的关键是这一行

implicit val regionTypeInformation = 
         api.scala.createTypeInformation[FlinkDataTypes.FlinkRegionType]

FlinkRegionType我有Array自定义对象

我在IDE中使用maven插件开发了应用程序,一切都运行良好,但是当我转到从网站下载的版本时,我得到上面的错误

我正在使用Flink 0.9

我在想某些图书馆可能会丢失,但我正在使用maven来处理所有事情。此外,通过ObjectArrayTypeInfo.java的代码,它似乎不是问题

1 个答案:

答案 0 :(得分:3)

NoSuchMethodError通常表示编译Flink程序的库与执行程序的系统之间的版本不匹配。特别是如果相同的代码在IDE设置中工作,其中编译和执行库是相同的。

在这种情况下,您应该检查Flink依赖项的版本,例如在Maven POM文件中。