flink1.16.0 动态加载udf包(一)

flink1.16.0 动态加载udf包(一)

环境:

  • flink版本:1.16.0
  • flink部署模式:session 模式。在物理机上直接部署flink docker,job和task都是1
  • jdk:1.8

加载类和注册udf

tableEnvironment.executeSql("add JAR  '" + jarPath + "'");

tableEnvironment.executeSql("CREATE FUNCTION " + udfName + " AS '" + classPath + "'");

碰到问题

Caused by: java.lang.ClassCastException: cannot assign instance of 
org.apache.kafka.clients.consumer.OffsetResetStrategy to field org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer.offsetResetStrategy of type
org.apache.kafka.clients.consumer.OffsetResetStrategy in instance of 
org.apache.flink.connector.kafka.source.enumerator.initializer.ReaderHandledOffsetsInitializer

问题解决:

在flink-conf中添加 classloader.resolve-order: parent-first

最主要的就是,需要udf包中不能有多余的依赖, 不然很容易导致依赖冲突.

  • 所以udf打包是都是provided ,依赖统一放入flink/lib下统一管理

如果有错误,欢迎指正、交流 ,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monsterXZB

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值