I think the problem is that --classpath should be before the user jar, i.e., /opt/flink/job/kafkaDemo19-1.0-SNAPSHOT.jar


Aljoscha Krettek <aljoscha@apache.org> 于2020年3月6日周五 下午10:03写道:

first a preliminary question: does the jar file contain
com.alibaba.fastjson.JSON? Could you maybe list the contents of the jar


On 06.03.20 13:25, ouywl wrote:
> Hi all
>       When I start a flinkcluster in session mode, It include jm/tm. And then I
> submit a job like ‘bin/flink run —jobmanager “ip:8081” —class path  a.jar’. Even
> the a.jar in all jm/tm and ‘bin/flink’ mechine . It will throw exception “
> /opt/flink/bin/flink run --jobmanager ip:8081 --class
> com.netease.java.TopSpeedWindowing --parallelism 1 --detached
> /opt/flink/job/kafkaDemo19-1.0-SNAPSHOT.jar --classpath
> file:///opt/flink/job/fastjson-1.2.66.jar
> Starting execution of program
> Executing TopSpeedWindowing example with default input data set.
> Use --input to specify file input.
> java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSON
> at com.netease.java.TopSpeedWindowing.main(TopSpeedWindowing.java:98)
> 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:576)
> at
> org.apache.flink.client.program.PackagedProgram.invokeInteractiveModeForExecution(PackagedProgram.java:438)
> at org.apache.flink.client.program.ClusterClient.run(ClusterClient.java:274)
> at org.apache.flink.client.cli.CliFrontend.executeProgram(CliFrontend.java:746)”
>    As I read the code , flink cli have not load the —classspath jar, So It seems
> a bug about the flink cli. Are you agree with me?
> Best,
> Ouywl