当flink上传作业时,使用sql流查询的问题。

问题描述 投票:0回答:1

我使用了最新的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有一些冲突的依赖,就会有一些问题,我的问题是:如何解决这些冲突?

我的问题是:如何解决这些冲突?有什么汇编合并策略建议吗? 希望得到帮助。

sbt apache-flink flink-streaming flink-sql
1个回答
0
投票

我也有同样的问题,可能你的代码在打包的时候,用的是 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>
© www.soinside.com 2019 - 2024. All rights reserved.