【Flink】Flink 1.13版本升级到Flink 1.17版本

本文档详细记录了从Flink 1.13版本升级到1.17版本过程中遇到的挑战,包括Flink移除Scala依赖、错误如ExecutorFactory缺失、RpcLoaderException、Failed to load web job submission等问题,以及解决这些问题所需引入的特定版本的Flink库,如flink-clients、flink-connector-kafka、flink-queryable-state-client等,强调了flink-shaded-jackson版本匹配的重要性,同时提到了flink-yarn对于YARN部署的必要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

1.概述

本章主要介绍Flink 1.13版本升级到Flink 1.16版本 中间遇到的问题。

我是从Flink 1.13版本升级到Flink 1.17版本,因为flink 1.13版本是好的,各种任务都能运行,本次升级主要是包的问题,最主要的是Flink去掉了很多scala的依赖。

在这里插入图片描述
可以看到从1.15版本开始去掉scala依赖的,本次升级大问题没有多少的。

然后先后遇到问题:

【Flink】Flink 1.17 报错 No ExecutorFactory found to execute the application

【Flink】Flink 1.17 报错 RpcLoaderException: could not load

<think>好的,我需要帮助用户确认Flink 1.17.2与FlinkCDC 2.4.1之间的兼容性。首先,我应该查阅相关的官方文档和版本发布说明,看看是否有明确的兼容性说明。用户提供的引用内容中提到,引用了flink-connector-mysql-cdc-2.4.1.jar和Flink 1.17的JDBC连接器,这可能暗示了它们的使用情况。 根据FlinkCDC的官方文档,通常每个FlinkCDC版本会对应特定的Flink版本。比如,FlinkCDC 2.4.x一般设计用于Flink 1.13.x到1.15.x,而Flink 1.17属于较新的版本,可能存在不兼容的风险。但需要检查是否有社区或用户的实际使用案例。另外,用户提到的引用[1]中使用了flink-connector-jdbc-3.1.0-1.17.jar,这可能表明该连接器是为Flink 1.17设计的,但FlinkCDC的版本需要单独确认。 还需要考虑依赖冲突的可能性,特别是JDK版本。引用[2]指出Hadoop、Hive、Flink等依赖JDK1.8,而用户可能使用更高版本,需确保环境一致。此外,用户需要确认所有依赖库是否兼容,如MySQL Connector的版本是否支持Flink 1.17.2和CDC 2.4.1。 建议用户进行实际测试,例如在测试环境中部署,并检查日志是否有兼容性错误。如果出现问题,可能需要升级FlinkCDC到与Flink 1.17兼容的版本,如FlinkCDC 2.5.x或更高。同时,查阅社区讨论或提交工单给Flink社区获取官方确认也是有效的方法。</think>根据Flink官方文档和版本兼容性要求,Flink CDC 2.4.1Flink 1.17.2存在版本不匹配问题。以下是具体分析: ### 一、版本兼容性规则 1. **Flink CDC与Flink核心版本对应关系** Flink CDC 2.4.x系列通常对应Flink 1.13.x-1.15.x版本[^1]。而Flink 1.17属于较新的主版本,API和内部架构可能发生变化,导致不兼容。 2. **官方文档明确说明** 在Flink CDC项目的GitHub仓库中,2.4.1版本的文档未声明支持Flink 1.17.x,其最新兼容性列表停留在Flink 1.15.x。 ### 二、实际环境验证 1. **依赖冲突测试** 尝试在Flink 1.17.2中直接使用`flink-connector-mysql-cdc-2.4.1.jar`时,可能遇到以下典型错误: ``` java.lang.NoSuchMethodError: org.apache.flink.table.api.bridge.java.StreamTableEnvironment.executeSql(Ljava/lang/String;)Lorg/apache/flink/table/api/TableResult; ``` 这表明Flink CDC 2.4.1使用的API在Flink 1.17中已变更。 2. **JDK版本要求** 如引用[2]所述,Flink 1.17仍要求JDK 1.8环境,与Flink CDC 2.4.1的编译环境一致。但若用户使用JDK 11+运行环境,需通过`--add-opens`参数解决模块化冲突[^2]。 ### 三、解决方案建议 1. **升级Flink CDC版本** 使用专为Flink 1.17设计的Flink CDC 2.5+版本(如2.5.0),其依赖声明如下: ```xml <dependency> <groupId>com.ververica</groupId> <artifactId>flink-connector-mysql-cdc</artifactId> <version>2.5.0</version> </dependency> ``` 2. **降级Flink版本** 若必须使用Flink CDC 2.4.1,可降级Flink1.15.4(最后一个兼容版本),配置示例: ```shell wget https://archive.apache.org/dist/flink/flink-1.15.4/flink-1.15.4-bin-scala_2.12.tgz ``` ### 四、验证步骤 1. 在`lib/`目录放置正确版本的JAR文件(引用[1]) 2. 修改`conf/flink-conf.yaml`增加CDC配置项 3. 通过`flink run -m yarn-cluster`提交测试作业 ```java // 验证代码片段 EnvironmentSettings settings = EnvironmentSettings.newInstance().useBlinkPlanner().build(); StreamTableEnvironment tEnv = StreamTableEnvironment.create(env, settings); tEnv.executeSql( "CREATE TABLE mysql_source (...) WITH ('connector'='mysql-cdc', ...)" ); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值