Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Apache Flink:NoSuchMethodError在提交Flink作业时出错_Java_Apache Kafka_Apache Flink - Fatal编程技术网

Java Apache Flink:NoSuchMethodError在提交Flink作业时出错

Java Apache Flink:NoSuchMethodError在提交Flink作业时出错,java,apache-kafka,apache-flink,Java,Apache Kafka,Apache Flink,我正在尝试向flink群集提交作业,但一直遇到以下错误: 2021-05-03 17:14:32 java.lang.NoSuchMethodError: org/apache/flink/api/common/state/OperatorStateStore.getSerializableListState(Ljava/lang/String;)Lorg/apache/flink/api/common/state/ListState; (loaded from file:/opt/flink/

我正在尝试向flink群集提交作业,但一直遇到以下错误:

2021-05-03 17:14:32
java.lang.NoSuchMethodError: org/apache/flink/api/common/state/OperatorStateStore.getSerializableListState(Ljava/lang/String;)Lorg/apache/flink/api/common/state/ListState; (loaded from file:/opt/flink/lib/flink-dist_2.11-1.11.3.jar by jdk.internal.loader.ClassLoaders$AppClassLoader@c7a20636) called from class org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase (loaded from file:/tmp/blobStore-d962f26c-fc16-4ff4-89da-4d86ed60c35e/job_fdc8c054e20b751b6a6f549af602c3d2/blob_p-5fcb7b854786da736df1bbd47aa02017c714f655-34f669043602e72ef3faf32247ab2b17 by org.apache.flink.util.ChildFirstClassLoader@3952d030).
    at org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.initializeState(FlinkKafkaConsumerBase.java:858)
    at org.apache.flink.streaming.util.functions.StreamingFunctionUtils.tryRestoreFunction(StreamingFunctionUtils.java:185)
    at org.apache.flink.streaming.util.functions.StreamingFunctionUtils.restoreFunctionState(StreamingFunctionUtils.java:167)
    at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.initializeState(AbstractUdfStreamOperator.java:96)
    at org.apache.flink.streaming.api.operators.StreamOperatorStateHandler.initializeOperatorState(StreamOperatorStateHandler.java:106)
    at org.apache.flink.streaming.api.operators.AbstractStreamOperator.initializeState(AbstractStreamOperator.java:260)
    at org.apache.flink.streaming.runtime.tasks.OperatorChain.initializeStateAndOpenOperators(OperatorChain.java:290)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$beforeInvoke$1(StreamTask.java:506)
    at org.apache.flink.streaming.runtime.tasks.StreamTask$$Lambda$274/0x0000000014046b10.run(Unknown Source)
    at org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.runThrowing(StreamTaskActionExecutor.java:92)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.beforeInvoke(StreamTask.java:475)
    at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:526)
    at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721)
    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546)
    at java.base/java.lang.Thread.run(Thread.java:836)

我相信这个问题与版本不匹配有关(我假设我使用的是卡夫卡连接器),但我还没有解决它。我已尝试将flink版本设置为与集群(1.11.3)相同,但错误仍然存在。我也不完全确定如何使用maven shade插件来解决这个问题。任何帮助都将不胜感激

在报告中指出

删除不推荐的状态访问方法()

我们删除了不推荐使用的状态访问方法
RuntimeContext#getFoldingState()
OperatorStateStore#getSerializableListState()
OperatorStateStore#getOperatorState()
。 这意味着针对Flink 1.10编译的某些代码将无法与Flink 1.11群集一起使用。 我们的Kafka连接器就是一个例子,它在内部使用了
操作符statestore.getSerializableListState

在升级到新版本的Flink时,您应该始终希望重新编译用户JAR。不保证小版本更新(例如从1.10.x到1.11.y)之间的二进制兼容性。(在补丁发行版中引入突破性更改是不寻常的,但这种情况已经发生过一两次。)


概述:涉及的所有内容--您的用户jar、其依赖项和集群都应该使用相同版本的Flink。

使用了哪些版本的Flink和Kafka连接器来创建保存点,您正试图从中恢复状态?Kafka连接器版本为1.9.0,弹性连接器版本为1.10.0。Flink版本最初是1.9.1,但当我更改所有这些版本号以匹配集群(1.11.3)时,我遇到了一系列其他错误,如“找不到执行器工厂来执行应用程序”。这是repo,以防有帮助!