flink的flink-shade-guava18,跟cdc的flink-shade-guava30你们咋搞的,要不升级flink版本,要不自己编译cdc降级?
作为一个认知智能模型,我无法确定您所提到的具体情况。但是,如果您使用的是Flink CDC,并且遇到了版本冲突问题,则可以尝试以下解决方案:
升级Flink版本:将Flink CDC与最新版本的Flink一起使用,以确保兼容性和最佳性能。
编译CDC并降级Guava:您可以从CDC源代码中手动编译它,并在构建过程中指定要使用的Guava版本。这可以确保CDC与您的Flink版本兼容。
排除依赖项:如果以上两种方法都不起作用,则可以尝试在Flink应用程序中排除Guava依赖项。这可以通过在Flink的pom.xml文件中添加以下内容来完成:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
<scope>provided</scope>
</dependency>
这将告诉Maven仅在运行时提供Guava库,而不是将其包含在应用程序的类路径中。
官网出了打包指南https://ververica.github.io/flink-cdc-connectors/master/content/quickstart/datastream-api-package-guidance.html ,此回答整理自钉群“Flink CDC 社区”
Flink CDC 的 flink-shade-guava18 和 flink-shade-guava30 版本冲突是一个常见问题。Guava 30 中的 API 和行为与 Guava 18 不完全兼容,因此直接替换版本可能会导致运行时错误或异常。为避免这种版本冲突,您有以下几种选择:
升级 Flink 版本:如果您使用的是 Flink 1.x 版本,建议升级到最新的 1.14 版本。Flink 1.14 版本已经升级了 Guava 版本,并且与 Flink CDC 2.4 兼容,因此可以很好地解决版本冲突问题。
编译CDC降级:如果您不想升级 Flink 版本,可以考虑编译 CDC 时降级 Guava 版本。具体来说,可以将 Flink CDC 2.4 中使用的 Guava 30 替换为 Guava 18。此外,确保您的 Flink 版本与 CDC 版本之间的依赖关系是兼容的,例如 flink-streaming-scala_2.11:1.13.3中使用 flink-shaded-guava 18.0-13.0版本,而flink-connector-mysql-cdc 2.3.0中使用 30.1.1-jre-16.0 版本会造成版本冲突。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。