我使用了最新的flink版本(1.10.0)和sbt(1.3.7)。当我上传一个带有sql流查询的作业时,我遇到了这个异常,原因是:java.lang.classCastException: org.codehaus.janino.com。
Caused by: java.lang.ClassCastException: org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory at org.codehaus.commons.compiler.CompilerFactoryFactory.getCompilerFactory(CompilerFactoryFactory. java:129) at org.codehaus.commons.compiler.CompilerFactoryFactory.getDefaultCompilerFactory(CompilerFactoryFactory.java:79) at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.compile(JaninoRelMetadataProvider.java:432)
当我在运行主课时,用 海底捞金 它的工作原理是完美的。我做的罐子与 总装 命令,而我的库之间有冲突。出于这个原因,在build.sbt中添加这个。
assemblyMergeStrategy in assembly := {
case PathList("META-INF", xs @ _*) => MergeStrategy.discard
case x => MergeStrategy.first
}
我读到过一个类似的案例,是关于hive连接器的 https:/issues.apache.orgjirabrowseFLINK-14849。 这就是答案。
在... https:/issues.apache.orgjirabrowseFLINK-13749。 如果用户的jar有一些冲突的依赖,就会有一些问题,我的问题是:如何解决这些冲突?
我的问题是:如何解决这些冲突?有什么汇编合并策略建议吗? 希望得到帮助。
我也有同样的问题,可能你的代码在打包的时候,用的是 flink-table-planner_${scala.binary.version}
所以你需要用这些设置来改变你的maven配置。
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner-blink_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-planner_${scala.binary.version}</artifactId>
<version>${flink.version}</version>
<scope>provided</scope>
</dependency>