开发者社区> 问答> 正文

Flink on k8s 中,Jar 任务 avatica-core 依赖和 flink-table

我现在正在迁移任务到 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邮件归档

展开
收起
小阿矿 2021-12-06 16:08:10 1390 0
1 条回答
写回答
取消 提交回答
  • 如果单纯想解决 jar 包冲突的问题,那么 maven shade plugin[1] 或许对你有用

    [1]

    https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html

    Best,*来自志愿者整理的flink邮件归档

    2021-12-07 10:02:45
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像