*遇到的问题* 根据flink写入hive的最佳实践(https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/connectors/table/hive/overview/#dependencies), 我们添加了flink-sql-connector-hive-2.2.0_2.11-1.12.0.jar到集群的lib目录下. 该jar包中使用了3.1版本的common-lang3 我们想要使用3.3.2版本的common-lang3, 于是手动打包了logformat.jar, 但发现任务执行时还是调用了3.1版本的common-lang3
*我们的处理方式* 在官网上看到yarn-cluster模式下, 不会使用动态类加载(https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/ops/debugging/debugging_classloading/#overview-of-classloading-in-flink). 我们的理解是, 不使用动态类加载, 也就不会特意优先加载用户的jar, 此时会根据jar包的名字从a到z依次加载. 于是我们把logformat.jar改名为alogformat.jar, 以保证用户jar包的名字在排序时有更高的优先级. 然后再执行任务时, 正常调用了3.3.2版本的common-lang3 *问题总结* 1. yarn-cluster模式下确实是根据jar包的名字从a到z依次加载的吗? 2. 在yarn-cluster模式下, 有没有办法不更改用户jar包的名字, 但是优先加载用户jar包 *组件版本* flink: 1.12.0 hive: 2.1.0 -- Sent from: http://apache-flink.147419.n8.nabble.com/