java.lang.IllegalStateException: No ExecutorFactory found to execute the application.
at org.apache.flink.core.execution.DefaultExecutorServiceLoader.getExecutorFactory(DefaultExecutorServiceLoader.java:84)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.executeAsync(StreamExecutionEnvironment.java:1803)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1713)
at org.apache.flink.streaming.api.environment.LocalStreamEnvironment.execute(LocalStreamEnvironment.java:74)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1699)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.execute(StreamExecutionEnvironment.java:1681)
at com.cep.StaticAlarmGenerationEntryTest.main(StaticAlarmGenerationEntryTest.java:149)
我把flink从1.10升级到1.11后遇到的错误,我的id是eclipse。我试着添加artifactid:flink-clients_${scala.binary.version},但仍然失败。
3条答案
按热度按时间mkshixfv1#
我找到了为什么当我添加依赖
flink-clients
时发生错误的原因,我把flink从1.10升级到1.11,只是编辑了flink的版本,但没有改变scala的版本。使用
mvn archetype:generate -DarchetypeGroupId=org.apache.flink -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.11.0
这个命令来生成新的项目。你会发现pom.xml中已经添加了 "flink-clinets"。
ftf50wuq2#
当我把flink的工作打包到一个阴影的jar中时,我遇到了这个问题。当阴影时,如果在多个jar中存在同名的文件,它会在解压每个jar到新的阴影jar中时覆盖这个文件。
flink使用
META-INF/services/org.apache.flink.core.execution.PipelineExecutorFactory
文件来发现不同的执行工厂,而这个文件存在于多个jar中,每个jar都有不同的内容。为了解决这个问题,我不得不告诉maven-shade插件,当它遇到这些文件时,就把它们合并在一起,这就为我解决了这个问题。
h7wcgrx33#
参见1.11版本说明,现在你必须在
flink-clients
上添加一个明确的依赖关系。