我使用了最新的flink版本(1.10.0)和sbt(1.3.7)。上载带有流式sql查询的作业时出现此异常:
原因:java.lang.classcastexception:org.codehaus.janino.compilerfactory无法转换到org.codehaus.commons.compiler.icompilerfactory的org.codehaus.commons.compiler.compilerfactory.getcompilerfactory(compilerfactoryfactory)。java:129)在org.codehaus.commons.compiler.compilerFactory.getdefaultcompilerfactory(编译器工厂)。java:79)在org.apache.calcite.rel.metadata.janinorelmetadataprovider.compile(janinorelmetadataprovider。java:432)
当我用sbt run运行主类时,它运行得非常好。我用sbt assembly命令创建jar,库之间有冲突。因此,请在build.sbt中添加以下内容:
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
我读过一个类似的Hive连接器案例https://issues.apache.org/jira/browse/flink-14849 答案是:
之后https://issues.apache.org/jira/browse/flink-13749 ,flink客户端将使用默认的子级优先解析顺序。如果用户jar有一些冲突依赖项,则会出现一些问题。
我的问题是:如何解决这些冲突?对于这种情况,有什么程序集合并策略建议吗?我们将不胜感激。
1条答案
按热度按时间czq61nw11#
我也有同样的问题。也许你已经把你的代码打包了
flink-table-planner_${scala.binary.version}
,因此需要使用以下设置更改maven配置: