Flink CDC的安装配置

Flink CDC 是基于 Apache Flink 构建的,用于捕获数据库表中数据的变更情况,包括数据的插入、更新和删除操作,并能将这些变更数据以流的形式实时传输到其他系统中进行处理和分析。传统的数据同步工具往往是定时任务,存在时间延迟。而 Flink CDC 能实时捕获数据库的变更数据,一旦有数据变化,立即将其同步到目标系统,让数据在各个系统之间保持高度一致,几乎不存在延迟。CDC含义:变更数据捕获(Change Data Capture,简称 CDC)

1、开启MySQL binlog功能

sql 复制代码
# 1、修改mysql配置文件
vim /etc/my.cnf

# 2、增加以下配置
# 在配置文件中增加二配置
# 需要将配置放在[mysqld]后面
# 打开binlog
log-bin=mysql-bin
# 选择ROW(行)模式
binlog-format=ROW
# 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1


# 3、重启mysql服务
systemctl restart mysqld

# 查看mysql binlog文件
cd /var/lib/mysql
mysql-bin.000001

# 改了配置文件之后,重启MySQL,使用命令查看是否打开binlog模式:
mysql -uroot -p123456
show variables like 'log_bin';

# 创建表
create table user(
	id varchar(255),
	name varchar(255),
	age INT,
	PRIMARY KEY(id)
);
insert into user
values('002','李四',24);
bash 复制代码
# 1、上传jar到flink lib目录下
flink-sql-connector-mysql-cdc-2.2.1.jar

# 2、重启flink集群
yarn application -list
yarn application -kill application_1699579932721_2024
yarn-session.sh -d
sql 复制代码
-- 创建flink cdc表,
-- cdc表实时从mysql读取数据的表 -- 无界流
CREATE TABLE user_cdc (
	id STRING,
	name STRING,
	age INT,
    PRIMARY KEY(id) NOT ENFORCED
) WITH (
     'connector' = 'mysql-cdc',
     'hostname' = 'cdh',
     'port' = '3306',
     'username' = 'root',
     'password' = 'lisi1234',
     'database-name' = 'bigdata',
     'table-name' = 'user'
);

CREATE TABLE user_hdfs (
	id STRING,
	name STRING,
	age INT,
    PRIMARY KEY(id) NOT ENFORCED
)WITH (
    'connector' = 'filesystem',           -- 必选:指定连接器类型
    'path' = 'hdfs://cdh:8020/user/hdfs/user',  -- 必选:指定路径
    'format' = 'canal-json',                     -- 必选:文件系统连接器指定 format
    'source.monitor-interval' ='5000',
    'sink.rolling-policy.file-size' ='128MB',
    'sink.rolling-policy.rollover-interval' ='30 min',
    'sink.rolling-policy.check-interval' ='1 min'
);
-- 将变更数据使用canal json格式保存到hdfs中
-- 1、延迟会比较大
-- 2、如果修改了延迟时间,会产生小文件

-- 小文件导致的问题
-- 1、namenode压力大
-- 2、后续的批处理任务task太多,任务执行慢

insert into user_hdfs
select * from user_cdc;
相关推荐
不爱学英文的码字机器43 分钟前
数字孪生的浪潮:从虚拟镜像到现实世界的 IT 变革
大数据·python
kaamelai1 小时前
Kaamel视角下的MCP安全最佳实践
大数据·人工智能·安全
anqi271 小时前
如何在 IntelliJ IDEA 中编写 Speak 程序
java·大数据·开发语言·spark·intellij-idea
互联科技报2 小时前
孙宇晨将出席迪拜Token2049 与特朗普次子共话加密未来
大数据
科技小E2 小时前
EasyRTC嵌入式音视频通信SDK智能安防与监控系统的全方位升级解决方案
大数据·网络·人工智能·音视频
刘翔在线犯法3 小时前
如何搭建spark yarn模式的集合集群
大数据·分布式·spark
富能量爆棚3 小时前
如何搭建spark yarn 模式的集群
大数据·javascript·spark
Betty_蹄蹄boo4 小时前
在Spark集群中搭建Standalone
大数据·分布式·spark
AORO_BEIDOU4 小时前
遨游三防|30200mAh、双露营灯三防平板,见证堆料天花板
大数据·科技·安全·智能手机·电脑·信息与通信
晴天彩虹雨4 小时前
Flink 消费 Kafka 数据流的最佳实践
数据仓库·flink·kafka·linq