请问下,Flink CDC 中这个demo依赖那些jar?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在使用 Flink CDC 时,您需要确保正确配置依赖的 JAR 包以支持其功能。根据知识库中的相关资料,以下是 Flink CDC Demo 所需的主要依赖及其说明:
Flink CDC 的运行需要与 Flink 版本匹配的核心依赖。这些依赖通常包括以下内容: - flink-streaming-java:Flink 流处理核心模块。 - flink-table:Flink 表 API 和 SQL 模块。
示例依赖配置(以 Flink 1.17 为例):
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.17.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-table-api-java-bridge_2.12</artifactId>
<version>1.17.2</version>
<scope>provided</scope>
</dependency>
注意:请确保 <scope> 设置为 provided,以避免与集群环境中的依赖冲突。
Flink CDC 需要特定的 Connector 来实现数据源的捕获。例如,如果您使用 MySQL 数据库作为数据源,则需要添加 flink-connector-mysql-cdc 依赖。
示例依赖配置(以 MySQL CDC 为例):
<dependency>
<groupId>com.ververica</groupId>
<artifactId>flink-connector-mysql-cdc</artifactId>
<version>2.4.0</version>
</dependency>
重要提示: - 确保 Connector 的版本与 Flink 引擎版本兼容。例如,flink-connector-mysql-cdc 的 2.4.0 版本适用于 Flink 1.17。 - 如果使用其他数据库(如 PostgreSQL、Oracle),需要下载对应的 CDC Connector。
Flink CDC 需要数据库的 JDBC 驱动来连接数据源。例如,MySQL 数据库需要 mysql-connector-java。
示例依赖配置:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
注意: - 数据库驱动的版本需要与目标数据库版本兼容。 - 在部署作业时,建议将数据库驱动 JAR 包作为附加依赖上传到 Flink 工作空间。
如果您的项目中需要自定义日志配置,可以添加日志相关的依赖。但为了避免冲突,建议排除默认的日志依赖,并使用 maven-shade-plugin 进行重定位。
示例排除日志依赖:
<dependency>
<groupId>org.apache.flink</groupId>
<artifactId>flink-streaming-java_2.12</artifactId>
<version>1.17.2</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
如果您的作业中使用了自定义函数(UDF)或其他第三方库,请确保这些依赖被打包到最终的 JAR 文件中。推荐使用 maven-shade-plugin 进行打包,以避免依赖冲突。
示例 Shade 插件配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
在部署 Flink 作业时,您需要将上述依赖的 JAR 包上传到 Flink 工作空间,并在作业配置中指定路径。例如:
pipeline.classpaths: 'file:///flink/usrlib/flink-connector-mysql-cdc-2.4.0.jar;file:///flink/usrlib/mysql-connector-java-8.0.27.jar'
操作步骤: 1. 登录实时计算控制台,进入目标工作空间。 2. 在文件管理页面上传所需的 JAR 包。 3. 在作业运维页面,编辑作业的 附加依赖文件 和 运行参数配置,指定 JAR 包路径。
Flink CDC Demo 的主要依赖包括: 1. Flink 核心依赖(flink-streaming-java 和 flink-table)。 2. Flink CDC Connector(如 flink-connector-mysql-cdc)。 3. 数据库驱动(如 mysql-connector-java)。 4. 日志依赖(可选)。 5. 其他自定义依赖(如 UDF)。
重要提醒: - 确保所有依赖版本与 Flink 引擎版本一致。 - 避免依赖冲突,建议使用 provided 作用域和 maven-shade-plugin 打包工具。
通过以上配置,您可以成功运行 Flink CDC Demo 并捕获数据变更。