Flink: Flink CDC 3.4.0 实时同步MYSQL8

单机实验环境: Oracle Linux 7.9 + MYSQL 8.0.37 + Flink 1.20.0 + Flink CDC 3.4.0 + JDK17.0.12

测试用名: ORACLE 

一、安装 JAVA 

1、解压安装 JAVA

将从JAVA官方网站下载的JAVA文件(jdk-17.0.12_linux-x64_bin.tar.gz)上传LINUX系统的/home/oracle/soft 目录,

使用命令 解压到本地目录

# cd /home/oracle/soft 

# tar -xzf  jdk-17.0.12_linux-x64_bin.tar.gz   # 解压后在当前文件夹看到新解压出来的文件夹  jdk-17.0.12 

#mv jdk17.0.12/  /opt/jdk17.0.12   # 移动到指定安装目录下

# chmod -R 755  /opt/jdk17.0.12  # 设置文件夹访问权限 当前用户具有读写执行权限,其他用户具有读、执行权限。

2、在用户根目录下配置文件(.bash_profile)后 添加

#vim  /home/oracle/.bash_profile  

export JAVA_HOME=/opt/jdk-17.0.12
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

3. 生效 用户配置文件

# source  .bash_profile 

4、查看 JAVA 版本

$ java -version 

结果显示:

java version "17.0.12"  2024-07-16 LTS 

 

image

 

二、安装 FLINK 1.20.0 、 FLINK-CDC

1、解压 flink-1.20.0-bin-scala_2.12.tgz

#cd /home/oracle/soft

#tar -xvf flink-1.20.0-bin-scala_2.12.tgz  #解压到当前目录,当前目录看到有 flink-1.20.0 目录

#chmod -R 755 flink-1.20.0 

1.1、 修改配置conf.yaml 

把 rest :bind-address: localhost 改为

bind-address: 0.0.0.0  ,使它可以在其他客户端访问。

 

image

 

2、 解压FLINK-CDC(flink-cdc-3.4.0-bin.tar.gz) 

#tar -xvf flink-cdc-3.4.0-bin.tar.gz    #解压到当前目录,当前目录看到有 flink-cdc-3.4.0 目录

#chmod -R 755 flink-cdc-3.4.0 

3、配置FLINK \ FLINK CDC 环境变量,

在用户根目录下配置文件(.bash_profile)添加

 

# vi  /home/oracle/.bash_profile 

image

 

4、生效配置文件

#source /home/oracle/.bash_profile 

5、 启动 FLINK 1.20.0

# cd /home/oracle/soft/flink-1.20.0 

# ./bin/start-cluster.sh 

 

image

image

启动成功。

6、输入 HTTP://LOCALHOST:8081  看主页。

image

 

 三、下载 flink-connector-jdbc-mysql-3.3.0.jar 驱动

1、在APACHE官网 下载 flink-connector-jdbc 源代码 https://flink.apache.org/downloads/ 

 下载flink-connector-jdbc-3.3.0-src.tgz 后

解压出来,

在安装有 MAVEN 3.8.1 + JAVA 11 以上版本的主机 环境里

flink-connector-jdbc-3.3.0 目录 下 运行

#mvn -clean

# mvn -package   生成 jar 包。

image

 

2、将生成的 

flink-connector-jdbc-core-3.3.0.jar、flink-connector-jdbc-mysql-3.3.0.jar、flink-connector-jdbc-3.3.0.jar

包放入  flink-1.20.0/lib 里。

2.1 下载 flink-sql-connector-mysql-cdc-3.3.0.jar ,mysql-connector-java-8.0.30.jar或以上版本 包放入  flink-1.20.0/lib 里。

四、数据表同步(MYSQL TO MYSQL),源表(CDC_SOURCE.PLAYER_SOURCE)、目标表 (CDC_TARGET.PLAYER_TARGET)

1、创建 两个测试数据库(MYSQL8.0.37):

CREATE DATABASE IF NOT EXISTS `cdc_source` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ENCRYPTION='N' ;

CREATE DATABASE IF NOT EXISTS `cdc_target` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ENCRYPTION='N' ;

2、创建MYSQL8 表, 建表详细 代码:

create table cdc_source.player_source(
`id` int(11),
`name` varchar(255),
PRIMARY KEY (`id`)
);


create table cdc_target.player_target(
`id` int(11),
`name` varchar(255),
PRIMARY KEY (`id`)
);

 3、flink sql-client 脚本,并保存 为source2sink.sql

image

 4、创建FLINK-CDC 任务

# cd /home/oracle/soft/flink-1.20.0

# ./bin/start-cluster.sh   #启动FLINK 服务

# ./bin/sql-client.sh  -i  /home/oracle/soft/source2sink.sql 

# insert into sink_dest select * from source_dest ;

image

 

3、在FLINK-SQL添加任务

image

 

 4、 在FLINK 中查新任务 状态 。

image

 。

五、验证同步 情况

image

 

posted @ 2025-08-30 07:33  samrv  阅读(54)  评论(0)    收藏  举报