尝试在集群的各个节点上执行下述命令:

export HADOOP_CLASSPATH=****************


然后执行任务提交。

在 2020-10-15 22:05:43,"gangzi" <1139872...@qq.com> 写道:
>请教一下,flink-1.11.1 yarn per job提交作业后,抛出了如下异常:
>java.lang.NoClassDefFoundError: org/apache/hadoop/mapred/JobConf
>    at java.lang.Class.getDeclaredMethods0(Native Method)
>    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
>    at java.lang.Class.getDeclaredMethod(Class.java:2128)
>    at java.io.ObjectStreamClass.getPrivateMethod(ObjectStreamClass.java:1629)
>    at java.io.ObjectStreamClass.access$1700(ObjectStreamClass.java:79)
>    at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:520)
>    at java.io.ObjectStreamClass$3.run(ObjectStreamClass.java:494)
>    at java.security.AccessController.doPrivileged(Native Method)
>    at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:494)
>    at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:391)
>    at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:681)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1885)
>    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1751)
>    at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2042)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>    at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1975)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1567)
>    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>    at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2287)
>    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2211)
>    at 
> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2069)
>    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1573)
>    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:431)
>    at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:576)
>    at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:562)
>    at 
> org.apache.flink.util.InstantiationUtil.deserializeObject(InstantiationUtil.java:550)
>    at 
> org.apache.flink.util.InstantiationUtil.readObjectFromConfig(InstantiationUtil.java:511)
>    at 
> org.apache.flink.streaming.api.graph.StreamConfig.getStreamOperatorFactory(StreamConfig.java:276)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createChainedOperator(OperatorChain.java:471)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createOutputCollector(OperatorChain.java:393)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createChainedOperator(OperatorChain.java:459)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createOutputCollector(OperatorChain.java:393)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createChainedOperator(OperatorChain.java:459)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.createOutputCollector(OperatorChain.java:393)
>    at 
> org.apache.flink.streaming.runtime.tasks.OperatorChain.<init>(OperatorChain.java:155)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.beforeInvoke(StreamTask.java:453)
>    at 
> org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:522)
>    at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721)
>    at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546)
>    at java.lang.Thread.run(Thread.java:748)
>Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.mapred.JobConf
>    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
>    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
>    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
>    ... 87 more
>
>yarn的每个节点都配置了HADOOP_CLASSPATH,看报错信息是缺少hadoop相关的jar包,把flink-shaded-hadoop-2-2.6.5-10.0加入flink/lib下能提交成功。但是flink官方在1.11版本后不推荐flink-shaded-hadoop-2-2.6.5-10.0这种方式了,而是推荐HADOOP_CLASSPATH这种方式,但是我按照这种方式却抛出了异常,不知道是不是flink-1.11的bug,麻烦各位大神指导一下,谢谢!



回复