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 ℡小新的蜡笔不见嘞、 <15...@qq.com.INVALID> on 2024/07/18 10:30:40 UTC

flink 任务运行抛ClassNotFoundException

请问,Flink 任务运行期间 偶尔会抛出 ClassNotFoundException 异常,这个一般是什么原因,以及怎么解决呢?信息如下:
* 这个类确实存在于 任务Jar 里面
* 这个类是经过 shade 后的,因为 Flink 集群里面集成了这个依赖,所以需要将相关的类经过shade 处理
* 这个问题偶尔出现,出现后可能会导致任务重启,并且重启后,任务可能恢复正常也可能继续因为这种异常继续失败
* 当前集群是 session standalone 方式的
* child first / parent first 方式都试过后,还是有这个问题


异常栈如下(JM节点):
Caused by: java.lang.ClassNotFoundException: org.apache.hudi.com.xx.xx.xxx.A
	at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:97)
	at org.apache.flink.util.ParentFirstClassLoader.loadClassWithoutExceptionHandling(ParentFirstClassLoader.java:65)
	at org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:81)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 59 more



感谢大家

Re: flink 任务运行抛ClassNotFoundException

Posted by Yanquan Lv <de...@gmail.com>.
你好,
假设 xxx.shade. 是你用于 shade 的前缀。
grep -rn 'org.apache.hudi.com.xx.xx.xxx.A'  和grep -rn
'xxx.shade.org.apache.hudi.com.xx.xx.xxx.A'  出来的结果一致吗?

℡小新的蜡笔不见嘞、 <15...@qq.com.invalid> 于2024年7月18日周四 20:14写道:

> 您好,感谢您的回复。
> 我理解应该是都做了 shade 处理,我这边用了您的 grep -rn 命令查看了下没问题。而且,这个
> 'org.apache.hudi.com.xx.xx.xxx.A'&nbsp; 在我的任务 jar 里面确实是存在的
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人:
>                                                   "user-zh"
>                                                                     <
> decq12ybhl@gmail.com&gt;;
> 发送时间:&nbsp;2024年7月18日(星期四) 晚上7:55
> 收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;
>
> 主题:&nbsp;Re: flink 任务运行抛ClassNotFoundException
>
>
>
> 你好,这个类被 shade 了,但是调用这个类的其他类可能在不同的 jar 包,没有都被 shade 处理。可以 grep -rn
> 'org.apache.hudi.com.xx.xx.xxx.A' 看看所有调用这个类的包是不是都做了 shade 处理。
>
> ℡小新的蜡笔不见嘞、 <1515827454@qq.com.invalid&gt; 于2024年7月18日周四 18:31写道:
>
> &gt; 请问,Flink 任务运行期间 偶尔会抛出 ClassNotFoundException
> 异常,这个一般是什么原因,以及怎么解决呢?信息如下:
> &gt; * 这个类确实存在于 任务Jar 里面
> &gt; * 这个类是经过 shade 后的,因为 Flink 集群里面集成了这个依赖,所以需要将相关的类经过shade 处理
> &gt; * 这个问题偶尔出现,出现后可能会导致任务重启,并且重启后,任务可能恢复正常也可能继续因为这种异常继续失败
> &gt; * 当前集群是 session standalone 方式的
> &gt; * child first / parent first 方式都试过后,还是有这个问题
> &gt;
> &gt;
> &gt; 异常栈如下(JM节点):
> &gt; Caused by: java.lang.ClassNotFoundException:
> &gt; org.apache.hudi.com.xx.xx.xxx.A
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> java.net.URLClassLoader.findClass(URLClassLoader.java:382)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> java.lang.ClassLoader.loadClass(ClassLoader.java:424)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> &gt;
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:97)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> &gt;
> org.apache.flink.util.ParentFirstClassLoader.loadClassWithoutExceptionHandling(ParentFirstClassLoader.java:65)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> &gt;
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:81)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
> java.lang.ClassLoader.loadClass(ClassLoader.java:357)
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... 59 more
> &gt;
> &gt;
> &gt;
> &gt; 感谢大家

回复: flink 任务运行抛ClassNotFoundException

Posted by ℡小新的蜡笔不见嘞、 <15...@qq.com.INVALID>.
您好,感谢您的回复。
我理解应该是都做了 shade 处理,我这边用了您的 grep -rn 命令查看了下没问题。而且,这个 'org.apache.hudi.com.xx.xx.xxx.A'&nbsp; 在我的任务 jar 里面确实是存在的




------------------&nbsp;原始邮件&nbsp;------------------
发件人:                                                                                                                        "user-zh"                                                                                    <decq12ybhl@gmail.com&gt;;
发送时间:&nbsp;2024年7月18日(星期四) 晚上7:55
收件人:&nbsp;"user-zh"<user-zh@flink.apache.org&gt;;

主题:&nbsp;Re: flink 任务运行抛ClassNotFoundException



你好,这个类被 shade 了,但是调用这个类的其他类可能在不同的 jar 包,没有都被 shade 处理。可以 grep -rn
'org.apache.hudi.com.xx.xx.xxx.A' 看看所有调用这个类的包是不是都做了 shade 处理。

℡小新的蜡笔不见嘞、 <1515827454@qq.com.invalid&gt; 于2024年7月18日周四 18:31写道:

&gt; 请问,Flink 任务运行期间 偶尔会抛出 ClassNotFoundException 异常,这个一般是什么原因,以及怎么解决呢?信息如下:
&gt; * 这个类确实存在于 任务Jar 里面
&gt; * 这个类是经过 shade 后的,因为 Flink 集群里面集成了这个依赖,所以需要将相关的类经过shade 处理
&gt; * 这个问题偶尔出现,出现后可能会导致任务重启,并且重启后,任务可能恢复正常也可能继续因为这种异常继续失败
&gt; * 当前集群是 session standalone 方式的
&gt; * child first / parent first 方式都试过后,还是有这个问题
&gt;
&gt;
&gt; 异常栈如下(JM节点):
&gt; Caused by: java.lang.ClassNotFoundException:
&gt; org.apache.hudi.com.xx.xx.xxx.A
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
&gt; org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:97)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
&gt; org.apache.flink.util.ParentFirstClassLoader.loadClassWithoutExceptionHandling(ParentFirstClassLoader.java:65)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at
&gt; org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:81)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ... 59 more
&gt;
&gt;
&gt;
&gt; 感谢大家

Re: flink 任务运行抛ClassNotFoundException

Posted by Yanquan Lv <de...@gmail.com>.
你好,这个类被 shade 了,但是调用这个类的其他类可能在不同的 jar 包,没有都被 shade 处理。可以 grep -rn
'org.apache.hudi.com.xx.xx.xxx.A' 看看所有调用这个类的包是不是都做了 shade 处理。

℡小新的蜡笔不见嘞、 <15...@qq.com.invalid> 于2024年7月18日周四 18:31写道:

> 请问,Flink 任务运行期间 偶尔会抛出 ClassNotFoundException 异常,这个一般是什么原因,以及怎么解决呢?信息如下:
> * 这个类确实存在于 任务Jar 里面
> * 这个类是经过 shade 后的,因为 Flink 集群里面集成了这个依赖,所以需要将相关的类经过shade 处理
> * 这个问题偶尔出现,出现后可能会导致任务重启,并且重启后,任务可能恢复正常也可能继续因为这种异常继续失败
> * 当前集群是 session standalone 方式的
> * child first / parent first 方式都试过后,还是有这个问题
>
>
> 异常栈如下(JM节点):
> Caused by: java.lang.ClassNotFoundException:
> org.apache.hudi.com.xx.xx.xxx.A
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClassWithoutExceptionHandling(FlinkUserCodeClassLoader.java:97)
>         at
> org.apache.flink.util.ParentFirstClassLoader.loadClassWithoutExceptionHandling(ParentFirstClassLoader.java:65)
>         at
> org.apache.flink.util.FlinkUserCodeClassLoader.loadClass(FlinkUserCodeClassLoader.java:81)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         ... 59 more
>
>
>
> 感谢大家