是的,这是因为在Flink CDC 3.0 中引入了一个新的特性叫做 Schema Evolution (Schema Change Event) ,它允许用户实时地修改源数据中的列名和类型等元数据属性而无需停机进行手动更改。然而,在某些情况下,这种功能可能会引发一些不兼容性问题,从而出现像你遇到的NoSuchMethodError
这类的异常。
对于这种类型的错误,通常需要对以下几个方面进行排查:
-XX:+UseURLClassLoading
来强制使用 URL 类加载方式。java.lang.NoSuchMethodError错误解决 https://blog.csdn.net/kawsaki/article/details/123101477
一、错误原因
java.lang.NoSuchMethodError错误可能的原因:
1、有这个类,该类没有这个方法
2、类冲突、Jar包冲突、Jar包版本冲突
3、有这个类(A),类中也有方法,但在B类中引用了A类,并调用A类的方法,后面修改A类,把该A类的方法返回值类型改变(如将方法返回类型由void类型改成String类型),只部署A类,没有重新部署B类,将导致NoSuchMethodError错误。
二、解决方案
1、有这个类,该类没有这个方法
在类增加方法。
2、类冲突、Jar包冲突、Jar包版本冲突
删除冲突类、Jar包,更换冲突的Jar包版本。
3、有这个类(A),类中也有方法,但在B类中引用了A类,并调用A类的方法,后面修改A类,把该A类的方法返回值类型改变(如将方法返回类型由void类型改成String类型),只部署A类,没有重新部署B类,将导致NoSuchMethodError错误。
把引用到A类的代码都重新打包部署。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。