繁体   English   中英

Flink:运行Table API查询时出现NoClassDefFoundError

[英]Flink: NoClassDefFoundError when runnig a Table API query

我有一个流式表API查询,并想使用table.writetoSink(sink)方法将结果Table写入.csv文件。

运行程序时,出现以下错误。

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/commons/compiler/CompileException
at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:580)
at org.apache.flink.api.table.FlinkPlannerImpl.rel(FlinkPlannerImpl.scala:102)
at org.apache.flink.api.table.BatchTableEnvironment.sql(BatchTableEnvironment.scala:132)
at table_streaming_test.main(table_streaming_test.java:59)
Caused by: java.lang.ClassNotFoundException: org.codehaus.commons.compiler.CompileException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

我还在项目中包含了commons-compiler.jar文件。

Flink的Table and SQL API建立在Apache Calcite之上,后者取决于org.codehaus.janino commons-compiler

错误消息表明您的应用程序中不包括commons-compiler依赖项。 一种方法是构建一个胖jar,其中包含应用程序的所有依赖项。 Flink的快速入门Maven原型( JavaScala )为此提供了一个蓝图。 另一种方法是将所有必需的依赖项添加到Flink设置的./lib文件夹中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM