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;
相关推荐
非著名架构师1 小时前
极端天气下的供应链韧性:制造企业如何构建气象风险防御体系
大数据·人工智能·算法·制造·疾风气象大模型·风光功率预测
做萤石二次开发的哈哈3 小时前
11月27日直播预告 | 萤石智慧台球厅创新场景化方案分享
大数据·人工智能
Hello.Reader3 小时前
使用 Flink CDC 搭建跨库 Streaming ETLMySQL + Postgres → Elasticsearch 实战
大数据·elasticsearch·flink
用户199701080183 小时前
1688图片搜索API | 上传图片秒找同款 | 相似商品精准推荐
大数据·数据挖掘·图片资源
武子康4 小时前
大数据-164 Apache Kylin Cuboid 剪枝实战:Derived 维度与膨胀率控制
大数据·后端·apache kylin
梦里不知身是客115 小时前
shuffle过程
大数据
星释5 小时前
Rust 练习册 80:Grains与位运算
大数据·算法·rust
练习时长一年6 小时前
git常用命令总结
大数据·git·elasticsearch
TDengine (老段)7 小时前
TDengine IDMP 重塑智慧水务运营(内附 Step by Step 步骤)
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
萤丰信息11 小时前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区