You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Han Mingcong <ha...@hotmail.com> on 2019/04/11 06:21:58 UTC

java.lang.NoClassDefFoundError: org/apache/flink/table/api/TableEnvironment

您好,
   近期在调研Flink,从官网下载的flink-1.7.2-bin-hadoop28-scala_2.11版本,在使用flink run 提交一个Table作业时有以下报错:

[bin]$ ./flink run -c WordCountTable ../../WC.jar
Starting execution of program
java.lang.NoClassDefFoundError: org/apache/flink/table/api/TableEnvironment
at WordCountTable.main(WordCountTable.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529)
at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)
at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:427)
at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:813)
at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:287)
at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)
at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1050)
at org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1126)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1836)
at org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1126)
Caused by: java.lang.ClassNotFoundException: org.apache.flink.table.api.TableEnvironment
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 18 more

程序源码来自于https://github.com/apache/flink/blob/release-1.7/flink-examples/flink-examples-table/src/main/java/org/apache/flink/table/examples/java/WordCountTable.java

pom.xml:

<dependencies>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-table_2.11</artifactId>
        <version>1.7.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.flink</groupId>
        <artifactId>flink-streaming-scala_2.11</artifactId>
        <version>1.7.2</version>
    </dependency>
</dependencies>

请问如何解决这个问题?


Re: java.lang.NoClassDefFoundError: org/apache/flink/table/api/TableEnvironment

Posted by Yaoting Gong <fa...@gmail.com>.
@Bial Liu  正解。
默认情况下,lib下只有最常用的几个jar. 满足最基础的Stream/Batch 编程。其他比如table, cep, ml
等都需要在opt/下找到对应的jar,移到lib/中。或者 自己项目里面编译带上也行

On Mon, Apr 15, 2019 at 5:36 PM Biao Liu <mm...@gmail.com> wrote:

> Hi,
> 猜测是因为 flink-dist.jar 中未包含 table 相关 jar,opt/ 下应该有
> flink-table-xxx.jar,带上这个包再运行试试 (可以先粗暴点把这个包放到 lib/ 下再运行)
>
> Han Mingcong <ha...@hotmail.com> 于2019年4月15日周一 下午5:05写道:
>
> > 您好,
> >    近期在调研Flink,从官网下载的flink-1.7.2-bin-hadoop28-scala_2.11版本,在使用flink run
> > 提交一个Table作业时有以下报错:
> >
> > [bin]$ ./flink run -c WordCountTable ../../WC.jar
> > Starting execution of program
> > java.lang.NoClassDefFoundError:
> org/apache/flink/table/api/TableEnvironment
> > at WordCountTable.main(WordCountTable.java:22)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> >
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> > at
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> > at java.lang.reflect.Method.invoke(Method.java:498)
> > at
> >
> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529)
> > at
> >
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)
> > at
> > org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:427)
> > at
> >
> org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:813)
> > at
> org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:287)
> > at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)
> > at
> >
> org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1050)
> > at
> >
> org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1126)
> > at java.security.AccessController.doPrivileged(Native Method)
> > at javax.security.auth.Subject.doAs(Subject.java:422)
> > at
> >
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1836)
> > at
> >
> org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
> > at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1126)
> > Caused by: java.lang.ClassNotFoundException:
> > org.apache.flink.table.api.TableEnvironment
> > at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> > at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> > ... 18 more
> >
> > 程序源码来自于
> >
> https://github.com/apache/flink/blob/release-1.7/flink-examples/flink-examples-table/src/main/java/org/apache/flink/table/examples/java/WordCountTable.java
> >
> > pom.xml:
> >
> > <dependencies>
> >     <dependency>
> >         <groupId>org.apache.flink</groupId>
> >         <artifactId>flink-table_2.11</artifactId>
> >         <version>1.7.2</version>
> >     </dependency>
> >     <dependency>
> >         <groupId>org.apache.flink</groupId>
> >         <artifactId>flink-streaming-scala_2.11</artifactId>
> >         <version>1.7.2</version>
> >     </dependency>
> > </dependencies>
> >
> > 请问如何解决这个问题?
> >
> >
>

Re: java.lang.NoClassDefFoundError: org/apache/flink/table/api/TableEnvironment

Posted by Biao Liu <mm...@gmail.com>.
Hi,
猜测是因为 flink-dist.jar 中未包含 table 相关 jar,opt/ 下应该有
flink-table-xxx.jar,带上这个包再运行试试 (可以先粗暴点把这个包放到 lib/ 下再运行)

Han Mingcong <ha...@hotmail.com> 于2019年4月15日周一 下午5:05写道:

> 您好,
>    近期在调研Flink,从官网下载的flink-1.7.2-bin-hadoop28-scala_2.11版本,在使用flink run
> 提交一个Table作业时有以下报错:
>
> [bin]$ ./flink run -c WordCountTable ../../WC.jar
> Starting execution of program
> java.lang.NoClassDefFoundError: org/apache/flink/table/api/TableEnvironment
> at WordCountTable.main(WordCountTable.java:22)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.apache.flink.client.program.PackagedProgram.callMainMethod(PackagedProgram.java:529)
> at
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:421)
> at
> org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:427)
> at
> org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:813)
> at org.apache.flink.client.cli.CliFrontend.runProgram(CliFrontend.java:287)
> at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:213)
> at
> org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:1050)
> at
> org.apache.flink.client.cli.CliFrontend.lambda$main$11(CliFrontend.java:1126)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.security.auth.Subject.doAs(Subject.java:422)
> at
> org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1836)
> at
> org.apache.flink.runtime.security.HadoopSecurityContext.runSecured(HadoopSecurityContext.java:41)
> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:1126)
> Caused by: java.lang.ClassNotFoundException:
> org.apache.flink.table.api.TableEnvironment
> at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> ... 18 more
>
> 程序源码来自于
> https://github.com/apache/flink/blob/release-1.7/flink-examples/flink-examples-table/src/main/java/org/apache/flink/table/examples/java/WordCountTable.java
>
> pom.xml:
>
> <dependencies>
>     <dependency>
>         <groupId>org.apache.flink</groupId>
>         <artifactId>flink-table_2.11</artifactId>
>         <version>1.7.2</version>
>     </dependency>
>     <dependency>
>         <groupId>org.apache.flink</groupId>
>         <artifactId>flink-streaming-scala_2.11</artifactId>
>         <version>1.7.2</version>
>     </dependency>
> </dependencies>
>
> 请问如何解决这个问题?
>
>