You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by "casel.chen" <ca...@126.com> on 2023/03/28 11:24:49 UTC

找到多个default类型的ExecutorFactory导致提交flink sql作业失败

我的实时作业项目想解析sql获取到TableIdentifier做sql血缘,使用的版本是flink 1.15.2,同时引入了 flink-table-planner_2.12 和 flink-table-planner-loader 依赖,debug时发现

 TableEnvironmentImpl create(EnvironmentSettings settings) 方法会调用

 FactoryUtil.discoverFactory(classLoader, ExecutorFactory.class, ExecutorFactory.DEFAULT_IDENTIFIER)方法
去寻找带有default标识的ExecutorFactory,结果找到了两个,一个是DelegateExcutorFactory,另一个是DefaultExecutorFactory。
于是抛了异常 "Multiple factories for identifier 'default' that implement ExecutorFactory found in the classpath."

 进一步查看到这个DelegateExcutorFactory其实代理的是就是DefaultExecutorFactory




 请问:

 1. 这个DelegateExcutorFactory起什么作用?

 2. 这两个module依赖的有什么区别和联系?

 3. 项目中只能依赖这两个当中的其中一个jar吗?正确的应该依赖哪个module呢?