Hi 社区,
我现在正在迁移任务到 k8s ,目前版本为 Flink 1.6 版本,k8s 上面作业运行模式为 standalone per job. 现在遇到一个问题,业务方 Flink jar 任务使用了 org.apache.calcite.avatica 依赖,也就是下面依赖: <dependency> <groupId>org.apache.calcite.avatica</groupId> <artifactId>avatica-core</artifactId> <version>${avatica.version}</version> </dependency> 但是这个依赖其实在 flink-table 模块中,也有这个依赖: 由于 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 目录下,然后就出现了类冲突问题。 请问怎么解决这个问题呢,非常期待你的回复。 Best, LakeShen |
Hi
你的图挂了,如果单纯想解决 jar 包冲突的问题,那么 maven shade plugin[1] 或许对你有用 [1] https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html Best, Congxian LakeShen <[hidden email]> 于2020年7月16日周四 下午6:03写道: > Hi 社区, > > 我现在正在迁移任务到 k8s ,目前版本为 Flink 1.6 版本,k8s 上面作业运行模式为 standalone per job. > > 现在遇到一个问题,业务方 Flink jar 任务使用了 org.apache.calcite.avatica 依赖,也就是下面依赖: > <dependency> > <groupId>org.apache.calcite.avatica</groupId> > <artifactId>avatica-core</artifactId> > <version>${avatica.version}</version> > </dependency> > > 但是这个依赖其实在 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 目录下,然后就出现了类冲突问题。 > > 请问怎么解决这个问题呢,非常期待你的回复。 > > Best, > LakeShen > > > |
嗯嗯,Congxian,感谢你的回复,我通过 Maven Shaded 解决问题😁。
Congxian Qiu <[hidden email]> 于2020年7月16日周四 下午8:19写道: > Hi > > 你的图挂了,如果单纯想解决 jar 包冲突的问题,那么 maven shade plugin[1] 或许对你有用 > > [1] > > https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html > Best, > Congxian > > > LakeShen <[hidden email]> 于2020年7月16日周四 下午6:03写道: > > > Hi 社区, > > > > 我现在正在迁移任务到 k8s ,目前版本为 Flink 1.6 版本,k8s 上面作业运行模式为 standalone per job. > > > > 现在遇到一个问题,业务方 Flink jar 任务使用了 org.apache.calcite.avatica 依赖,也就是下面依赖: > > <dependency> > > <groupId>org.apache.calcite.avatica</groupId> > > <artifactId>avatica-core</artifactId> > > <version>${avatica.version}</version> > > </dependency> > > > > 但是这个依赖其实在 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 目录下,然后就出现了类冲突问题。 > > > > 请问怎么解决这个问题呢,非常期待你的回复。 > > > > Best, > > LakeShen > > > > > > > |
Flink从1.10开始是支持用user classloader来加载用户jar的,包括Standalone perjob
你需要将jar包放到$FLINK_HOME/usrlib目录下,如果放到lib下就会用框架的classloader 来加载 Best, Yang LakeShen <[hidden email]> 于2020年7月17日周五 上午10:02写道: > 嗯嗯,Congxian,感谢你的回复,我通过 Maven Shaded 解决问题😁。 > > Congxian Qiu <[hidden email]> 于2020年7月16日周四 下午8:19写道: > > > Hi > > > > 你的图挂了,如果单纯想解决 jar 包冲突的问题,那么 maven shade plugin[1] 或许对你有用 > > > > [1] > > > > > https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html > > Best, > > Congxian > > > > > > LakeShen <[hidden email]> 于2020年7月16日周四 下午6:03写道: > > > > > Hi 社区, > > > > > > 我现在正在迁移任务到 k8s ,目前版本为 Flink 1.6 版本,k8s 上面作业运行模式为 standalone per job. > > > > > > 现在遇到一个问题,业务方 Flink jar 任务使用了 org.apache.calcite.avatica 依赖,也就是下面依赖: > > > <dependency> > > > <groupId>org.apache.calcite.avatica</groupId> > > > <artifactId>avatica-core</artifactId> > > > <version>${avatica.version}</version> > > > </dependency> > > > > > > 但是这个依赖其实在 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 > 目录下,然后就出现了类冲突问题。 > > > > > > 请问怎么解决这个问题呢,非常期待你的回复。 > > > > > > Best, > > > LakeShen > > > > > > > > > > > > |
Free forum by Nabble | Edit this page |