Flink设置加载jar顺序

当Flink执行任务遇到`ProgramInvocationException`和`ClassCastException`,原因是任务依赖与集群存在冲突。解决方法是在`flink-conf.yaml`中设置`classloader.resolve-order`为`parent-first`,使Flink优先从集群加载类,避免jar包中的类覆盖集群已有类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flink设置加载jar顺序

以下异常信息

org.apache.flink.client.program.ProgramInvocationException: The main method caused an error: Unable to instantiate java compiler
...
Caused by: java.lang.IllegalStateException: Unable to instantiate java compiler
...
Caused by: java.lang.ClassCastException: org.codehaus.janino.CompilerFactory cannot be cast to org.codehaus.commons.compiler.ICompilerFactory

分析原因:执行Jar包中的依赖与集群中存在依赖冲突

解决办法,配置类加载顺序

flink-conf.yaml如下配置

classloader.resolve-order: parent-first

parent-first

优先从Flink集群加载类,如果没有该类,就从用户提交的任务(jar包)中加载

child-first (默认)

优先从Flink任务(jar包)加载类,如果没有,则从Flink集群加载

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值