Ich habe ein Problem mit 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)
...
Die Linie mit dem Problem ist diese
implicit val regionTypeInformation =
api.scala.createTypeInformation[FlinkDataTypes.FlinkRegionType]
in dem FlinkRegionType
ich habe ein Array
von benutzerdefinierten Objekten
Ich habe die App mit dem Maven-Plugin in der IDE entwickelt und alles funktioniert gut, aber wenn ich zu der Version wechsle, die ich von der Website heruntergeladen habe, bekomme ich den obigen Fehler
Ich benutze Flink 0.9
Ich dachte, eine Bibliothek könnte fehlen, aber ich benutze Maven, um alles zu erledigen. Außerdem läuft der Code von ObjectArrayTypeInfo.java Es scheint nicht das Problem zu sein
Antworten:
3 für die Antwort № 1EIN NoSuchMethodError
zeigt gewöhnlich an, dass die Version nicht übereinstimmtBibliotheken, mit denen ein Flink-Programm erstellt wurde, und das System, auf dem das Programm ausgeführt wird. Insbesondere wenn derselbe Code in einem IDE-Setup funktioniert, in dem die Kompilierungs- und Ausführungsbibliotheken gleich sind.
In diesem Fall sollten Sie die Version der Flink-Abhängigkeiten überprüfen, z. B. in der Maven-POM-Datei.