我现在正在迁移任务到 k8s ,目前版本为 Flink 1.6 版本,k8s 上面作业运行模式为 standalone per job.
现在遇到一个问题,业务方 Flink jar 任务使用了 org.apache.calcite.avatica 依赖,也就是下面依赖:
org.apache.calcite.avatica
avatica-core
${avatica.version}
但是这个依赖其实在 flink-table 模块中,也有这个依赖:
[image: image.png]
由于 flink on k8s standalone per job 模式,会把 Flink 任务 jar 包放入到 flink 本身的lib
包中,我在任务启动的时候,就会报:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class
org.apache.calcite.avatica.ConnectionPropertiesImpl 错误。
按照我的理解,由于 Flink jar 任务包中有 avatica-core 依赖,同时在 flink lib
目录下面,flink-table_2.11-1.6-RELEASE.jar 中也有这个依赖,这两个都在 lib 目录下,然后就出现了类冲突问题。
请问怎么解决这个问题呢,非常期待你的回复。
*来自志愿者整理的flink邮件归档
如果单纯想解决 jar 包冲突的问题,那么 maven shade plugin[1] 或许对你有用
[1]
https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html
Best,*来自志愿者整理的flink邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。