flink1.10 提交java sql ddl程序异常

在Flink 1.10版本中,尝试通过Java SQL DDL提交Kafka连接器的作业到集群时遇到异常。本地运行正常,但在集群中报错,经过排查发现可能是类加载问题。在解决过程中,尝试了更新库、排除包冲突,并使用Arthas工具检查类加载情况。最终发现,问题在于客户端加载Flink SQL Connector Kafka的jar包需要放在lib目录下,通过调整部署方式并确保正确加载依赖,成功解决了问题。
摘要由CSDN通过智能技术生成

  flink1.10对ddl这块支持比较完善,最近用java写了个ddl kafka的demo测试。在ide本地环境中执行没有问题,但将任务打包提交的flink 集群时提交就报错,无法执行,异常如下: 

看异常好像是ddl写错了,本地运行正常,说明没有问题。使用flink sql-client客户端测试报一样的错,flink lib下没有对应的包,将包放到lib下,使用sql-client执行正常,说明提交集群时没有加载到包,实际上包已经打进去了。怀疑是flink类加载机制造成的。重新提交任务,依然失败,这次异常变了成如下:

看异常怀疑包冲突,排了janino包,提交还是出现这个异常。找到项目中引用的CompilerFactoryFactory这个类查看异常处发现代码对不上,少了很多行代码,于是将flink lib下对应的jar取下来反编译发现代码对上了,将本地项目中对应的flink-table-planner,flink-table-planner-blink包不打包进去,使用flink lib下自带的jar,重新提交任务正常运行了。为什么自己打包的flink-sql-connector-kafka包无法加载到,心中还是疑惑。为了解决这个使用阿里开源的arthas查看类加载方式。在flink web ui上查看刚提

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值