Apache flink Flink错误:java.lang.ClassNotFoundException:org.apache.Flink.shade.calcite.com.google.common.base.Throwables

Apache flink Flink错误:java.lang.ClassNotFoundException:org.apache.Flink.shade.calcite.com.google.common.base.Throwables,apache-flink,flink-streaming,Apache Flink,Flink Streaming,我正在使用Flink流式传输csv文件中的数据。我想把它转换成具有特定模式的表格式。为此,我使用了Flink-table_2.10-1.1.3.jar(table api),但我得到了以下错误: log4j:WARN No appenders could be found for logger (org.apache.flink.api.java.typeutils.TypeExtractor). log4j:WARN Please initialize the log4j system pro

我正在使用Flink流式传输csv文件中的数据。我想把它转换成具有特定模式的表格式。为此,我使用了Flink-table_2.10-1.1.3.jar(table api),但我得到了以下错误:

log4j:WARN No appenders could be found for logger (org.apache.flink.api.java.typeutils.TypeExtractor).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/flink/shaded/calcite/com/google/common/base/Throwables
    at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.create(JaninoRelMetadataProvider.java:450)
    at org.apache.calcite.rel.metadata.JaninoRelMetadataProvider.revise(JaninoRelMetadataProvider.java:460)
    at org.apache.calcite.rel.metadata.RelMetadataQuery.revise(RelMetadataQuery.java:186)
    at org.apache.calcite.rel.metadata.RelMetadataQuery.collations(RelMetadataQuery.java:484)
    at org.apache.calcite.rel.metadata.RelMdCollation.project(RelMdCollation.java:207)
    at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:122)
    at org.apache.calcite.rel.logical.LogicalProject$1.get(LogicalProject.java:120)
    at org.apache.calcite.plan.RelTraitSet.replaceIfs(RelTraitSet.java:238)
    at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:116)
    at org.apache.calcite.rel.logical.LogicalProject.create(LogicalProject.java:108)
    at org.apache.flink.api.table.plan.logical.Project.construct(operators.scala:90)
    at org.apache.flink.api.table.plan.logical.Project.construct(operators.scala:85)
    at org.apache.flink.api.table.plan.logical.LogicalNode.toRelNode(LogicalNode.scala:78)
    at org.apache.flink.api.table.Table.getRelNode(table.scala:66)
    at org.apache.flink.api.table.StreamTableEnvironment.translate(StreamTableEnvironment.scala:243)
    at org.apache.flink.api.java.table.StreamTableEnvironment.toDataStream(StreamTableEnvironment.scala:147)
    at table_streaming_test.main(table_streaming_test.java:90)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.shaded.calcite.com.google.common.base.Throwables
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more
当我探索相应的jar时,相应的类就出现在那里。你能告诉我为什么会这样吗


我还可以获得maven源代码,以便在我的位置构建Flink table.jar吗?

我在CEP库中也遇到了同样的问题。我添加到我的pom文件中,但我一直得到ClassNotFoundException。我甚至通过IntelliJ将它与我的jar文件打包在一起,但没有成功

  • 如果您使用的是他们的flink quickstart原型,我认为pom文件中还有其他一些东西需要更改才能使其正常工作。当我创建了一个干净的项目并自己添加了flink依赖项时,我再也没有遇到过这种异常。您可以尝试看看这种方法是否有效

  • 您还可以将flink表JAR文件添加到flink中的
    lib
    文件夹中。这也解决了我在CEP库中的问题。JAR文件可以在Maven存储库网站上找到。下载您想要的版本

  • 根据Flink网站上的
    表格和SQL
    文档:

    注意:表API目前不是二进制发行版的一部分。 有关集群执行,请参阅与之链接


    我对CEP图书馆也有同样的问题。我添加到我的pom文件中,但我一直得到ClassNotFoundException。我甚至通过IntelliJ将它与我的jar文件打包在一起,但没有成功

  • 如果您使用的是他们的flink quickstart原型,我认为pom文件中还有其他一些东西需要更改才能使其正常工作。当我创建了一个干净的项目并自己添加了flink依赖项时,我再也没有遇到过这种异常。您可以尝试看看这种方法是否有效

  • 您还可以将flink表JAR文件添加到flink中的
    lib
    文件夹中。这也解决了我在CEP库中的问题。JAR文件可以在Maven存储库网站上找到。下载您想要的版本

  • 根据Flink网站上的
    表格和SQL
    文档:

    注意:表API目前不是二进制发行版的一部分。 有关集群执行,请参阅与之链接


    flink v1.4.2中的表api也面临同样的问题

    我将opt文件夹中的flink-table_2.11-1.4.2.jar文件添加到lib文件夹中,并重新启动了flink。
    这对我有用。希望对您也有用:)

    在flink v1.4.2中,我也面临同样的表api问题

    我将opt文件夹中的flink-table_2.11-1.4.2.jar文件添加到lib文件夹中,并重新启动了flink。
    这对我有用。希望对你也有用:)

    你能把你的pom文件放在这里吗,这样我就可以了解更改和依赖关系了。@kadsank只需在IntelliJ上创建一个空的Maven项目,并从Flink的下载页面复制依赖项标签,你能把你的pom文件放在这里吗,所以我对更改和依赖项有了一个概念。@kadsank只需在IntelliJ上创建一个空的Maven项目,并从Flink的下载页面复制依赖项标记