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 GeGe <gg...@163.com> on 2020/09/25 07:38:02 UTC
flink读取mongo数据本地部署成功,flink-cluster部署找不到类
您好!
我用flink从mongo读取数据,在本地运行成功,但是部署到本地flink-cluster中却报错:
java.lang.NoClassDefFoundError: com/mongodb/MongoClient
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethod(Class.java:2128)
at org.apache.flink.api.java.ClosureCleaner.usesCustomSerialization(ClosureCleaner.java:164)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:89)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:71)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:1901)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1614)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1571)
at org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1553)
at com.test.flink.service.MongoFlinkMainService.main(MongoFlinkMainService.java:23)
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:288)
at org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:198)
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:149)
at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:699)
at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:232)
at org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:916)
at org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:992)
at org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:992)
Caused by: java.lang.ClassNotFoundException: com.mongodb.MongoClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:61)
at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 24 more
之前得到的数据是org.bson.Document格式,但是报错:找不到Document,所以就换成了String类型。现在报错的类也是在同一个jar包下:mongo-driver-java-3.8.2.jar ,换了各种版本,解压maven的jar包查看也有这个jar包。现在就是不知道为什么找不到这个jar包下的任何类。
请求各位大神帮帮忙~~非常非常感谢~~
Best wishes,
Gege
| |
Ge Ge
Software Engineer
|
|
gg13871077440@163.com
|
签名由网易邮箱大师定制
回复: flink读取mongo数据本地部署成功,flink-cluster部署找不到类
Posted by GeGe <gg...@163.com>.
您好!
十分感谢您的回答!之前有进行尝试,但是还是没有解决这个问题。最后觉得应该是jar包不能读取到,所以把那个jar包单独放到了flink的lib下面,运行成功了。还没有找到一劳永逸解决的办法,不过十分感谢您的回复,谢谢~
Best wishes,
Gege
| |
Ge Ge
Software Engineer
|
|
gg13871077440@163.com
|
签名由网易邮箱大师定制
在2020年09月25日 16:01,zilong xiao<ac...@gmail.com> 写道:
有可能是依赖冲突了,可以尝试用maven shade jar看看
GeGe <gg...@163.com> 于2020年9月25日周五 下午3:54写道:
您好!
我用flink从mongo读取数据,在本地运行成功,但是部署到本地flink-cluster中却报错:
java.lang.NoClassDefFoundError: com/mongodb/MongoClient
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethod(Class.java:2128)
at
org.apache.flink.api.java.ClosureCleaner.usesCustomSerialization(ClosureCleaner.java:164)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:89)
at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:71)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:1901)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1614)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1571)
at
org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1553)
at
com.test.flink.service.MongoFlinkMainService.main(MongoFlinkMainService.java:23)
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:288)
at
org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:198)
at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:149)
at
org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:699)
at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:232)
at
org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:916)
at
org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:992)
at
org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:992)
Caused by: java.lang.ClassNotFoundException: com.mongodb.MongoClient
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at
org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:61)
at
org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 24 more
之前得到的数据是org.bson.Document格式,但是报错:找不到Document,所以就换成了String类型。现在报错的类也是在同一个jar包下:mongo-driver-java-3.8.2.jar
,换了各种版本,解压maven的jar包查看也有这个jar包。现在就是不知道为什么找不到这个jar包下的任何类。
请求各位大神帮帮忙~~非常非常感谢~~
Best wishes,
Gege
| |
Ge Ge
Software Engineer
|
|
gg13871077440@163.com
|
签名由网易邮箱大师定制
Re: flink读取mongo数据本地部署成功,flink-cluster部署找不到类
Posted by zilong xiao <ac...@gmail.com>.
有可能是依赖冲突了,可以尝试用maven shade jar看看
GeGe <gg...@163.com> 于2020年9月25日周五 下午3:54写道:
>
>
> 您好!
>
>
> 我用flink从mongo读取数据,在本地运行成功,但是部署到本地flink-cluster中却报错:
>
>
>
> java.lang.NoClassDefFoundError: com/mongodb/MongoClient
>
> at java.lang.Class.getDeclaredMethods0(Native Method)
>
> at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
>
> at java.lang.Class.getDeclaredMethod(Class.java:2128)
>
> at
> org.apache.flink.api.java.ClosureCleaner.usesCustomSerialization(ClosureCleaner.java:164)
>
> at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:89)
>
> at org.apache.flink.api.java.ClosureCleaner.clean(ClosureCleaner.java:71)
>
> at
> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.clean(StreamExecutionEnvironment.java:1901)
>
> at
> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1614)
>
> at
> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1571)
>
> at
> org.apache.flink.streaming.api.environment.StreamExecutionEnvironment.addSource(StreamExecutionEnvironment.java:1553)
>
> at
> com.test.flink.service.MongoFlinkMainService.main(MongoFlinkMainService.java:23)
>
> 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:288)
>
> at
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:198)
>
> at org.apache.flink.client.ClientUtils.executeProgram(ClientUtils.java:149)
>
> at
> org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:699)
>
> at org.apache.flink.client.cli.CliFrontend.run(CliFrontend.java:232)
>
> at
> org.apache.flink.client.cli.CliFrontend.parseParameters(CliFrontend.java:916)
>
> at
> org.apache.flink.client.cli.CliFrontend.lambda$main$10(CliFrontend.java:992)
>
> at
> org.apache.flink.runtime.security.contexts.NoOpSecurityContext.runSecured(NoOpSecurityContext.java:30)
>
> at org.apache.flink.client.cli.CliFrontend.main(CliFrontend.java:992)
>
> Caused by: java.lang.ClassNotFoundException: com.mongodb.MongoClient
>
> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>
> at
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:61)
>
> at
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:48)
>
> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>
> ... 24 more
>
>
>
>
>
> 之前得到的数据是org.bson.Document格式,但是报错:找不到Document,所以就换成了String类型。现在报错的类也是在同一个jar包下:mongo-driver-java-3.8.2.jar
> ,换了各种版本,解压maven的jar包查看也有这个jar包。现在就是不知道为什么找不到这个jar包下的任何类。
>
>
> 请求各位大神帮帮忙~~非常非常感谢~~
>
>
> Best wishes,
>
>
> Gege
> | |
> Ge Ge
> Software Engineer
> |
> |
> gg13871077440@163.com
> |
> 签名由网易邮箱大师定制
>
>